From owner-p4-projects Fri Nov 15 9:50:51 2002 Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1C2DF37B404; Fri, 15 Nov 2002 09:50:49 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B7C6C37B401 for ; Fri, 15 Nov 2002 09:50:48 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 70BAE43E42 for ; Fri, 15 Nov 2002 09:50:48 -0800 (PST) (envelope-from peter@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id gAFHmAmV007416 for ; Fri, 15 Nov 2002 09:48:10 -0800 (PST) (envelope-from peter@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id gAFHmAcH007411 for perforce@freebsd.org; Fri, 15 Nov 2002 09:48:10 -0800 (PST) Date: Fri, 15 Nov 2002 09:48:10 -0800 (PST) Message-Id: <200211151748.gAFHmAcH007411@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to peter@freebsd.org using -f From: Peter Wemm Subject: PERFORCE change 21071 for review To: Perforce Change Reviews Sender: owner-p4-projects@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG http://perforce.freebsd.org/chv.cgi?CH=21071 Change 21071 by peter@peter_precision on 2002/11/15 09:47:48 Dont use utime(3) (obsolete anyway). It is sizeof(time_t) sensitive and is asking for trouble if you get includes out of sync with the emulation of utime() in libc/gen/utime.c. utimes(2) uses struct timeval, which has explicit 'long' values for times. Affected files ... .. //depot/projects/ia64/usr.bin/xinstall/xinstall.c#12 edit Differences ... ==== //depot/projects/ia64/usr.bin/xinstall/xinstall.c#12 (text+ko) ==== @@ -64,7 +64,6 @@ #include #include #include -#include #include "pathnames.h" @@ -262,7 +261,7 @@ install(const char *from_name, const char *to_name, u_long fset, u_int flags) { struct stat from_sb, temp_sb, to_sb; - struct utimbuf utb; + struct timeval tvb[2]; int devnull, files_match, from_fd, serrno, target; int tempcopy, temp_fd, to_fd; char backup[MAXPATHLEN], *p, pathbuf[MAXPATHLEN], tempfile[MAXPATHLEN]; @@ -377,9 +376,11 @@ * Need to preserve target file times, though. */ if (to_sb.st_nlink != 1) { - utb.actime = to_sb.st_atime; - utb.modtime = to_sb.st_mtime; - (void)utime(tempfile, &utb); + tvb[0].tv_sec = to_sb.st_atime; + tvb[0].tv_usec = 0; + tvb[1].tv_sec = to_sb.st_mtime; + tvb[1].tv_usec = 0; + (void)utimes(tempfile, tvb); } else { files_match = 1; (void)unlink(tempfile); @@ -433,9 +434,11 @@ * Preserve the timestamp of the source file if necessary. */ if (dopreserve && !files_match && !devnull) { - utb.actime = from_sb.st_atime; - utb.modtime = from_sb.st_mtime; - (void)utime(to_name, &utb); + tvb[0].tv_sec = from_sb.st_atime; + tvb[0].tv_usec = 0; + tvb[1].tv_sec = from_sb.st_mtime; + tvb[1].tv_usec = 0; + (void)utimes(to_name, tvb); } if (fstat(to_fd, &to_sb) == -1) { To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe p4-projects" in the body of the message