Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 10 Feb 2012 13:40:32 +0000 (UTC)
From:      Ed Schouten <ed@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r231383 - in head: lib/libutil usr.sbin/vipw
Message-ID:  <201202101340.q1ADeWDj076596@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ed
Date: Fri Feb 10 13:40:32 2012
New Revision: 231383
URL: http://svn.freebsd.org/changeset/base/231383

Log:
  Detect file modification properly by using tv_nsec.
  
  POSIX 2008 standardizes st_mtim, meaning we can simply use nanosecond
  precision to detect file modification.
  
  MFC after:	2 weeks

Modified:
  head/lib/libutil/pw_util.c
  head/usr.sbin/vipw/vipw.8

Modified: head/lib/libutil/pw_util.c
==============================================================================
--- head/lib/libutil/pw_util.c	Fri Feb 10 13:36:39 2012	(r231382)
+++ head/lib/libutil/pw_util.c	Fri Feb 10 13:40:32 2012	(r231383)
@@ -347,7 +347,8 @@ pw_edit(int notsetuid)
 	sigprocmask(SIG_SETMASK, &oldsigset, NULL);
 	if (stat(tempname, &st2) == -1)
 		return (-1);
-	return (st1.st_mtime != st2.st_mtime);
+	return (st1.st_mtim.tv_sec != st2.st_mtim.tv_sec ||
+	    st1.st_mtim.tv_nsec != st2.st_mtim.tv_nsec);
 }
 
 /*

Modified: head/usr.sbin/vipw/vipw.8
==============================================================================
--- head/usr.sbin/vipw/vipw.8	Fri Feb 10 13:36:39 2012	(r231382)
+++ head/usr.sbin/vipw/vipw.8	Fri Feb 10 13:40:32 2012	(r231383)
@@ -28,7 +28,7 @@
 .\"     @(#)vipw.8	8.1 (Berkeley) 6/6/93
 .\" $FreeBSD$
 .\"
-.Dd June 6, 1993
+.Dd February 10, 2011
 .Dt VIPW 8
 .Os
 .Sh NAME
@@ -110,10 +110,3 @@ The
 .Nm
 utility appeared in
 .Bx 4.0 .
-.Sh BUGS
-The mechanism for checking for password file modifications requires that
-.Ev EDITOR
-run for at least one second.
-Non-interactive editor scripts should invoke
-.Xr sleep 1
-or equivalent to ensure this happens.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201202101340.q1ADeWDj076596>