From owner-freebsd-bugs@FreeBSD.ORG Mon Jan 8 17:00:28 2007 Return-Path: X-Original-To: freebsd-bugs@hub.freebsd.org Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id CAA7616A415 for ; Mon, 8 Jan 2007 17:00:28 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [69.147.83.40]) by mx1.freebsd.org (Postfix) with ESMTP id 5FC4C13C448 for ; Mon, 8 Jan 2007 17:00:28 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.13.4/8.13.4) with ESMTP id l08H0SHv048345 for ; Mon, 8 Jan 2007 17:00:28 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.13.4/8.13.4/Submit) id l08H0SvP048344; Mon, 8 Jan 2007 17:00:28 GMT (envelope-from gnats) Date: Mon, 8 Jan 2007 17:00:28 GMT Message-Id: <200701081700.l08H0SvP048344@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org From: Maxim Konovalov Cc: Subject: Re: bin/107676: file -p does not work X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Maxim Konovalov List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jan 2007 17:00:28 -0000 The following reply was made to PR bin/107676; it has been noted by GNATS. From: Maxim Konovalov To: bug-followup@freebsd.org Cc: Subject: Re: bin/107676: file -p does not work Date: Mon, 8 Jan 2007 19:51:35 +0300 (MSK) On Mon, 8 Jan 2007, 16:00-0000, Ricardo Nabinger Sanchez wrote: > The following reply was made to PR bin/107676; it has been noted by GNATS. > > From: Ricardo Nabinger Sanchez > To: "Dr. Markus Waldeck" > Cc: freebsd-gnats-submit@FreeBSD.org > Subject: Re: bin/107676: file -p does not work > Date: Mon, 8 Jan 2007 13:53:35 -0200 > > On Mon, 8 Jan 2007 13:45:01 GMT > "Dr. Markus Waldeck" wrote: > > > >Description: > > The option "-p" does not work because the utimes system call fails. > > > > ktrace: > > 28598 file CALL utimes(0xbfbfed78,0xbfbfe6d0) > > 28598 file RET utimes -1 errno 22 Invalid argument > > > > truss: > > utimes("FILENAME",{1168184675.-1077942524, 1166372455.000001}) ERR#22 > > 'Invalid argument' > > Also happens on 6.1-RELEASE i386: > > % truss file - p main.c > ... > lstat("main.c",0xbfbee200) = 0 (0x0) > open("main.c",0x0,027757561000) = 3 (0x3) > read(0x3,0xbfbee260,0x10000) = 6455 (0x1937) > break(0x8051000) = 0 (0x0) > lseek(3,0x0,SEEK_SET) = 0 (0x0) > close(3) = 0 (0x0) > utimes("main.c",{1168271467 -1077943672}) ERR#22 'Invalid argument' > ... Quick and mostly untested patch: Index: magic.c =================================================================== RCS file: /home/ncvs/src/contrib/file/magic.c,v retrieving revision 1.1.1.3 diff -u -p -r1.1.1.3 magic.c --- magic.c 19 Jun 2006 07:52:12 -0000 1.1.1.3 +++ magic.c 8 Jan 2007 16:46:12 -0000 @@ -195,6 +195,7 @@ close_and_restore(const struct magic_set */ #ifdef HAVE_UTIMES struct timeval utsbuf[2]; + memset(utsbuf, 0, sizeof(struct timeval) * 2); utsbuf[0].tv_sec = sb->st_atime; utsbuf[1].tv_sec = sb->st_mtime; @@ -202,6 +203,7 @@ close_and_restore(const struct magic_set #elif defined(HAVE_UTIME_H) || defined(HAVE_SYS_UTIME_H) struct utimbuf utbuf; + memset(&utbuf, 0, sizeof(struct utimbuf)); utbuf.actime = sb->st_atime; utbuf.modtime = sb->st_mtime; (void) utime(name, &utbuf); /* don't care if loses */ %%% -- Maxim Konovalov