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.
		
		
		
		
		
			
		
			
				
					
					
						
							70 lines
						
					
					
						
							2.1 KiB
						
					
					
				
			
		
		
	
	
							70 lines
						
					
					
						
							2.1 KiB
						
					
					
				# --- SDE-COPYRIGHT-NOTE-BEGIN --- | 
						|
# This copyright note is auto-generated by ./scripts/Create-CopyPatch. | 
						|
# | 
						|
# Filename: package/.../dog/check-ctime.patch | 
						|
# Copyright (C) 2007 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 --exclude='*~' --exclude='.*' -I '$Id:' -urN dog-1.7.orig/dog.c dog-1.7/dog.c | 
						|
This patch comes from Gentoo, author is the Gentoo maintainer of dog. | 
						|
--- ./dog.c	2005-05-13 08:01:37.000000000 -0400 | 
						|
+++ ./dog.c	2005-05-13 08:30:38.000000000 -0400 | 
						|
@@ -36,6 +36,7 @@ | 
						|
 #include <string.h> | 
						|
 #include "getopt.h" | 
						|
 #include <limits.h> | 
						|
+#include <time.h> | 
						|
 #include <netdb.h> | 
						|
  | 
						|
 // this is fun | 
						|
@@ -1321,26 +1322,35 @@ | 
						|
   	InetSockAddr sa; | 
						|
 	int newsock; | 
						|
 	uint32 ipAddr; | 
						|
-	int k; | 
						|
+	socklen_t k; | 
						|
 	time_t curr_time; | 
						|
 	char curr_date[64]; | 
						|
  | 
						|
 	k = sizeof(sa); | 
						|
 	while ((newsock=accept(sock,(struct sockaddr*)&sa,&k)) != -1) { | 
						|
 		if (!no_bind_header) { | 
						|
+			char *result = NULL; | 
						|
 			ipAddr = ntohl(sa.addr); | 
						|
 			time(&curr_time); | 
						|
-         strcpy(curr_date,ctime(&curr_time)); | 
						|
+			if (!(result = ctime(&curr_time))) { | 
						|
+			    perror("ctime"); | 
						|
+			    goto done; | 
						|
+			} | 
						|
+			strncpy(curr_date, result, sizeof(curr_date) - 1); | 
						|
 			while (!isalnum(curr_date[strlen(curr_date)-1])) { | 
						|
 	         curr_date[strlen(curr_date)-1] = 0; | 
						|
 			} | 
						|
 			printf("# %s from %d.%d.%d.%d:%d\n",curr_date,(int)ipAddr>>24,(int)(ipAddr>>16)&0xff,(int)(ipAddr>>8)&0xff,(int)ipAddr&0xff,ntohs(sa.port)); | 
						|
  		} | 
						|
-		straight_dump = newsock; | 
						|
-		DumpThings(argc,argv,hang_up_bind ? -1 : newsock); | 
						|
-		if (hang_up_bind) { | 
						|
+ | 
						|
+		goto done; | 
						|
+ | 
						|
+		done: | 
						|
+		    straight_dump = newsock; | 
						|
+		    DumpThings(argc,argv,hang_up_bind ? -1 : newsock); | 
						|
+		    if (hang_up_bind) { | 
						|
 			close(newsock); | 
						|
-		} | 
						|
+		    } | 
						|
 	} | 
						|
 } | 
						|
 
 | 
						|
 |