diff options
author | Aaron Walker <ka0ttic@gentoo.org> | 2005-05-13 12:46:31 +0000 |
---|---|---|
committer | Aaron Walker <ka0ttic@gentoo.org> | 2005-05-13 12:46:31 +0000 |
commit | eadd2dd638e39be49d73cff8102ec032630b0506 (patch) | |
tree | d52349e5b0df27b67846932248330f3ef64ef54c /sys-apps/dog/files/dog-1.7-check-ctime.diff | |
parent | invalid headers patch added (diff) | |
download | gentoo-2-eadd2dd638e39be49d73cff8102ec032630b0506.tar.gz gentoo-2-eadd2dd638e39be49d73cff8102ec032630b0506.tar.bz2 gentoo-2-eadd2dd638e39be49d73cff8102ec032630b0506.zip |
Revision bump; added patch to fix missing check on ctime return value (was using strcpy(buf, ctime(...))). Also use socklen_t over int as it should be (fixes gcc-4 warning as well).
(Portage version: 2.0.51.21-r1)
Diffstat (limited to 'sys-apps/dog/files/dog-1.7-check-ctime.diff')
-rw-r--r-- | sys-apps/dog/files/dog-1.7-check-ctime.diff | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/sys-apps/dog/files/dog-1.7-check-ctime.diff b/sys-apps/dog/files/dog-1.7-check-ctime.diff new file mode 100644 index 000000000000..251c04d75a16 --- /dev/null +++ b/sys-apps/dog/files/dog-1.7-check-ctime.diff @@ -0,0 +1,53 @@ +diff --exclude='*~' --exclude='.*' -I '$Id:' -urN dog-1.7.orig/dog.c dog-1.7/dog.c +--- dog-1.7.orig/dog.c 2005-05-13 08:01:37.000000000 -0400 ++++ dog-1.7/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); +- } ++ } + } + } + |