svn commit: r289218 - stable/10/usr.bin/usbhidaction

Hans Petter Selasky hselasky at FreeBSD.org
Tue Oct 13 08:21:16 UTC 2015


Author: hselasky
Date: Tue Oct 13 08:21:15 2015
New Revision: 289218
URL: https://svnweb.freebsd.org/changeset/base/289218

Log:
  MFC r288335:
  Store PID after becoming a daemon() and not before to ensure the
  correct PID gets written to the PID file.
  
  PR:		203252

Modified:
  stable/10/usr.bin/usbhidaction/usbhidaction.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.bin/usbhidaction/usbhidaction.c
==============================================================================
--- stable/10/usr.bin/usbhidaction/usbhidaction.c	Tue Oct 13 08:19:21 2015	(r289217)
+++ stable/10/usr.bin/usbhidaction/usbhidaction.c	Tue Oct 13 08:21:15 2015	(r289218)
@@ -166,17 +166,15 @@ main(int argc, char **argv)
 
 	if (demon) {
 		fp = open(pidfile, O_WRONLY|O_CREAT, S_IRUSR|S_IRGRP|S_IROTH);
-		if (fp >= 0) {
-			sz1 = snprintf(buf, sizeof buf, "%ld\n", 
-			    (long)getpid());
-			if (sz1 > sizeof buf)
-				sz1 = sizeof buf;
-			write(fp, buf, sz1);
-			close(fp);
-		} else
+		if (fp < 0)
 			err(1, "%s", pidfile);
 		if (daemon(0, 0) < 0)
 			err(1, "daemon()");
+		snprintf(buf, sizeof(buf), "%ld\n", (long)getpid());
+		sz1 = strlen(buf);
+		if (write(fp, buf, sz1) < 0)
+			err(1, "%s", pidfile);
+		close(fp);
 		isdemon = 1;
 	}
 


More information about the svn-src-all mailing list