summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Walker <ka0ttic@gentoo.org>2005-05-13 12:46:31 +0000
committerAaron Walker <ka0ttic@gentoo.org>2005-05-13 12:46:31 +0000
commiteadd2dd638e39be49d73cff8102ec032630b0506 (patch)
treed52349e5b0df27b67846932248330f3ef64ef54c /sys-apps/dog/files/dog-1.7-check-ctime.diff
parentinvalid headers patch added (diff)
downloadgentoo-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.diff53
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);
+- }
++ }
+ }
+ }
+