Author: kib
Date: Mon Apr  8 18:16:49 2019
New Revision: 346038
URL: https://svnweb.freebsd.org/changeset/base/346038

Log:
  Exercise some care before sending SIGHUP to mountd.
  
  Reviewed by:  antoine, emaste, oshogbo
  Sponsored by: The FreeBSD Foundation
  MFC after:    1 week
  Differential revision:        https://reviews.freebsd.org/D19847

Modified:
  head/sbin/mount/mount.c

Modified: head/sbin/mount/mount.c
==============================================================================
--- head/sbin/mount/mount.c     Mon Apr  8 18:15:10 2019        (r346037)
+++ head/sbin/mount/mount.c     Mon Apr  8 18:16:49 2019        (r346038)
@@ -227,6 +227,7 @@ restart_mountd(void)
        struct pidfh *pfh;
        pid_t mountdpid;
 
+       mountdpid = 0;
        pfh = pidfile_open(_PATH_MOUNTDPID, 0600, &mountdpid);
        if (pfh != NULL) {
                /* Mountd is not running. */
@@ -237,6 +238,16 @@ restart_mountd(void)
                /* Cannot open pidfile for some reason. */
                return;
        }
+
+       /*
+        * Refuse to send broadcast or group signals, this has
+        * happened due to the bugs in pidfile(3).
+        */
+       if (mountdpid <= 0) {
+               warnx("mountd pid %d, refusing to send SIGHUP", mountdpid);
+               return;
+       }
+
        /* We have mountd(8) PID in mountdpid varible, let's signal it. */
        if (kill(mountdpid, SIGHUP) == -1)
                err(1, "signal mountd");


_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to