# --- 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);
-		}
+		    }
 	}
 }