head 1.4; access; symbols pkgsrc-2013Q2:1.4.0.4 pkgsrc-2013Q2-base:1.4 pkgsrc-2012Q4:1.4.0.2 pkgsrc-2012Q4-base:1.4 pkgsrc-2012Q2:1.3.0.18 pkgsrc-2012Q2-base:1.3 pkgsrc-2012Q1:1.3.0.16 pkgsrc-2012Q1-base:1.3 pkgsrc-2011Q4:1.3.0.14 pkgsrc-2011Q4-base:1.3 pkgsrc-2011Q3:1.3.0.12 pkgsrc-2011Q3-base:1.3 pkgsrc-2011Q2:1.3.0.10 pkgsrc-2011Q2-base:1.3 pkgsrc-2011Q1:1.3.0.8 pkgsrc-2011Q1-base:1.3 pkgsrc-2010Q4:1.3.0.6 pkgsrc-2010Q4-base:1.3 pkgsrc-2010Q3:1.3.0.4 pkgsrc-2010Q3-base:1.3 pkgsrc-2010Q2:1.3.0.2 pkgsrc-2010Q2-base:1.3 pkgsrc-2010Q1:1.2.0.2 pkgsrc-2010Q1-base:1.2 pkgsrc-2009Q4:1.1.0.54 pkgsrc-2009Q4-base:1.1 pkgsrc-2009Q3:1.1.0.52 pkgsrc-2009Q3-base:1.1 pkgsrc-2009Q2:1.1.0.50 pkgsrc-2009Q2-base:1.1 pkgsrc-2009Q1:1.1.0.48 pkgsrc-2009Q1-base:1.1 pkgsrc-2008Q4:1.1.0.46 pkgsrc-2008Q4-base:1.1 pkgsrc-2008Q3:1.1.0.44 pkgsrc-2008Q3-base:1.1 cube-native-xorg:1.1.0.42 cube-native-xorg-base:1.1 pkgsrc-2008Q2:1.1.0.40 pkgsrc-2008Q2-base:1.1 cwrapper:1.1.0.38 pkgsrc-2008Q1:1.1.0.36 pkgsrc-2008Q1-base:1.1 pkgsrc-2007Q4:1.1.0.34 pkgsrc-2007Q4-base:1.1 pkgsrc-2007Q3:1.1.0.32 pkgsrc-2007Q3-base:1.1 pkgsrc-2007Q2:1.1.0.30 pkgsrc-2007Q2-base:1.1 pkgsrc-2007Q1:1.1.0.28 pkgsrc-2007Q1-base:1.1 pkgsrc-2006Q4:1.1.0.26 pkgsrc-2006Q4-base:1.1 pkgsrc-2006Q3:1.1.0.24 pkgsrc-2006Q3-base:1.1 pkgsrc-2006Q2:1.1.0.22 pkgsrc-2006Q2-base:1.1 pkgsrc-2006Q1:1.1.0.20 pkgsrc-2006Q1-base:1.1 pkgsrc-2005Q4:1.1.0.18 pkgsrc-2005Q4-base:1.1 pkgsrc-2005Q3:1.1.0.16 pkgsrc-2005Q3-base:1.1 pkgsrc-2005Q2:1.1.0.14 pkgsrc-2005Q2-base:1.1 pkgsrc-2005Q1:1.1.0.12 pkgsrc-2005Q1-base:1.1 pkgsrc-2004Q4:1.1.0.10 pkgsrc-2004Q4-base:1.1 pkgsrc-2004Q3:1.1.0.8 pkgsrc-2004Q3-base:1.1 pkgsrc-2004Q2:1.1.0.6 pkgsrc-2004Q2-base:1.1 pkgsrc-2004Q1:1.1.0.4 pkgsrc-2004Q1-base:1.1 pkgsrc-2003Q4:1.1.0.2 pkgsrc-2003Q4-base:1.1; locks; strict; comment @# @; 1.4 date 2012.09.26.16.52.38; author christos; state dead; branches; next 1.3; 1.3 date 2010.06.12.19.36.01; author dholland; state Exp; branches; next 1.2; 1.2 date 2010.03.07.08.52.27; author lukem; state Exp; branches; next 1.1; 1.1 date 2003.09.06.03.36.04; author kim; state Exp; branches; next ; desc @@ 1.4 log @update to latest freerdist-0.94: * use intmax_t instead of long long * Don't limit the size of the environment * Don't leak a directory file descriptor * ansify * dynamically allocate EARGS * use getaddrinfo @ text @$NetBSD: patch-ai,v 1.3 2010/06/12 19:36:01 dholland Exp $ Print and parse time_t as intmax_t, not as long (which might not fit). Likewise for (perhaps only some uses of) off_t. The last hunk is unrelated to the rest and fixes a tilde expansion bug. --- src/server.c.orig 1999-08-04 15:57:33.000000000 +0000 +++ src/server.c @@@@ -683,8 +683,8 @@@@ static void query(xname) case S_IFIFO: #endif #endif - (void) sendcmd(QC_YES, "%ld %ld %o %s %s", - (long) stb.st_size, stb.st_mtime, + (void) sendcmd(QC_YES, "%jd %jd %o %s %s", + (intmax_t)stb.st_size, (intmax_t)stb.st_mtime, stb.st_mode & 07777, getusername(stb.st_uid, target, options), getgroupname(stb.st_gid, target, options)); @@@@ -1449,6 +1449,7 @@@@ static void recvit(cmd, type) opt_t opts; off_t size; time_t mtime, atime; + intmax_t size_big, mtime_big, atime_big; char *owner, *group, *file; char new[MAXPATHLEN]; char fileb[MAXPATHLEN]; @@@@ -1476,7 +1477,12 @@@@ static void recvit(cmd, type) /* * Get file size */ - size = strtol(cp, &cp, 10); + size_big = strtoimax(cp, &cp, 10); + if ((intmax_t)(off_t)size_big != size_big) { + error("recvit: size out of range"); + return; + } + size = (off_t)size_big; if (*cp++ != ' ') { error("recvit: size not delimited"); return; @@@@ -1485,7 +1491,12 @@@@ static void recvit(cmd, type) /* * Get modification time */ - mtime = strtol(cp, &cp, 10); + mtime_big = strtoimax(cp, &cp, 10); + if ((intmax_t)(off_t)mtime_big != mtime_big) { + error("recvit: mtime out of range"); + return; + } + mtime = (time_t)mtime_big; if (*cp++ != ' ') { error("recvit: mtime not delimited"); return; @@@@ -1494,7 +1505,12 @@@@ static void recvit(cmd, type) /* * Get access time */ - atime = strtol(cp, &cp, 10); + atime_big = strtoimax(cp, &cp, 10); + if ((intmax_t)(off_t)atime_big != atime_big) { + error("recvit: atime out of range"); + return; + } + atime = (time_t)atime_big; if (*cp++ != ' ') { error("recvit: atime not delimited"); return; @@@@ -1534,8 +1550,8 @@@@ static void recvit(cmd, type) file = fileb; debugmsg(DM_MISC, - "recvit: opts = %04o mode = %04o size = %d mtime = %d", - opts, mode, size, mtime); + "recvit: opts = %04o mode = %04o size = %jd mtime = %jd", + opts, mode, (intmax_t)size, (intmax_t)mtime); debugmsg(DM_MISC, "recvit: owner = '%s' group = '%s' file = '%s' catname = %d isdir = %d", owner, group, file, catname, (type == S_IFDIR) ? 1 : 0); @@@@ -1737,7 +1753,7 @@@@ static void settarget(cmd, isdir) /* * Handle target */ - if (exptilde(target, cp) == NULL) + if (exptilde(target, file) == NULL) return; ptarget = target; while (*ptarget) @ 1.3 log @Update lukem's earlier fixes to use intmax_t for printing/reading time_t values, and also for (perhaps not all) off_t values. And while here, fix an unrelated LP64 bug calling execl(). PKGREVISION -> 4. @ text @d1 1 a1 1 $NetBSD: patch-ai,v 1.2 2010/03/07 08:52:27 lukem Exp $ @ 1.2 log @Cast time_t to (long) before printing with %ld. Fixes random coredumps on NetBSD-current with 64bit time_t. Bump PKGREVISION to 3. @ text @d1 6 a6 1 $NetBSD: patch-ai,v 1.1 2003/09/06 03:36:04 kim Exp $ d10 2 a11 1 @@@@ -684,7 +684,7 @@@@ static void query(xname) d14 1 a14 1 (void) sendcmd(QC_YES, "%ld %ld %o %s %s", d16 2 a17 1 + (long) stb.st_size, (long)stb.st_mtime, d21 51 a71 1 @@@@ -1534,8 +1534,8 @@@@ static void recvit(cmd, type) d77 2 a78 2 + "recvit: opts = %04o mode = %04o size = %ld mtime = %ld", + opts, mode, (long)size, (long)mtime); d82 1 a82 1 @@@@ -1737,7 +1737,7 @@@@ static void settarget(cmd, isdir) @ 1.1 log @Fix tilde expansion bug. @ text @d1 1 a1 1 $NetBSD$ d3 23 a25 3 --- src/server.c.orig Wed Aug 4 11:57:33 1999 +++ src/server.c Sun Nov 24 18:44:10 2002 @@@@ -1737,7 +1737,7 @@@@ @