Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Oct 2015 08:19:22 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-9@freebsd.org
Subject:   svn commit: r289217 - stable/9/usr.bin/usbhidaction
Message-ID:  <201510130819.t9D8JMTq037752@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: hselasky
Date: Tue Oct 13 08:19:21 2015
New Revision: 289217
URL: https://svnweb.freebsd.org/changeset/base/289217

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/9/usr.bin/usbhidaction/usbhidaction.c
Directory Properties:
  stable/9/usr.bin/   (props changed)
  stable/9/usr.bin/usbhidaction/   (props changed)

Modified: stable/9/usr.bin/usbhidaction/usbhidaction.c
==============================================================================
--- stable/9/usr.bin/usbhidaction/usbhidaction.c	Tue Oct 13 08:16:17 2015	(r289216)
+++ stable/9/usr.bin/usbhidaction/usbhidaction.c	Tue Oct 13 08:19:21 2015	(r289217)
@@ -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;
 	}
 



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