You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							53 lines
						
					
					
						
							1.7 KiB
						
					
					
				
			
		
		
	
	
							53 lines
						
					
					
						
							1.7 KiB
						
					
					
				# --- SDE-COPYRIGHT-NOTE-BEGIN --- | 
						|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. | 
						|
# | 
						|
# Filename: package/.../tcp_wrappers/0021-tcp_wrappers-7.6-restore-sigalarm.patch | 
						|
# Copyright (C) 2011 The OpenSDE Project | 
						|
# | 
						|
# More information can be found in the files COPYING and README. | 
						|
# | 
						|
# This patch file is dual-licensed. It is available under the license the | 
						|
# patched project is licensed under, as long as it is an OpenSource license | 
						|
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms | 
						|
# of the GNU General Public License as published by the Free Software | 
						|
# Foundation; either version 2 of the License, or (at your option) any later | 
						|
# version. | 
						|
# --- SDE-COPYRIGHT-NOTE-END --- | 
						|
 | 
						|
diff -ruN tcp_wrappers_7.6.orig/rfc931.c tcp_wrappers_7.6/rfc931.c | 
						|
--- tcp_wrappers_7.6.orig/rfc931.c	2004-08-29 18:40:08.000000000 +0200 | 
						|
+++ tcp_wrappers_7.6/rfc931.c	2004-08-29 18:40:02.000000000 +0200 | 
						|
@@ -92,6 +92,8 @@ | 
						|
     char   *cp; | 
						|
     char   *result = unknown; | 
						|
     FILE   *fp; | 
						|
+    unsigned saved_timeout; | 
						|
+    struct sigaction nact, oact; | 
						|
  | 
						|
 #ifdef INET6 | 
						|
     /* address family must be the same */ | 
						|
@@ -134,7 +136,12 @@ | 
						|
 	 */ | 
						|
  | 
						|
 	if (setjmp(timebuf) == 0) { | 
						|
-	    signal(SIGALRM, timeout); | 
						|
+	    /* Save SIGALRM timer and handler. Sudheer Abdul-Salam, SUN. */ | 
						|
+	    saved_timeout = alarm(0); | 
						|
+	    nact.sa_handler = timeout; | 
						|
+	    nact.sa_flags = 0; | 
						|
+	    (void) sigemptyset(&nact.sa_mask); | 
						|
+	    (void) sigaction(SIGALRM, &nact, &oact); | 
						|
 	    alarm(rfc931_timeout); | 
						|
  | 
						|
 	    /* | 
						|
@@ -223,6 +230,10 @@ | 
						|
 	    } | 
						|
 	    alarm(0); | 
						|
 	} | 
						|
+	/* Restore SIGALRM timer and handler. Sudheer Abdul-Salam, SUN. */ | 
						|
+	(void) sigaction(SIGALRM, &oact, NULL); | 
						|
+	if (saved_timeout > 0) | 
						|
+	    alarm(saved_timeout); | 
						|
 	fclose(fp); | 
						|
     } | 
						|
     STRN_CPY(dest, result, STRING_LENGTH);
 | 
						|
 |