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
This commit is contained in:
kib 2019-04-08 18:16:49 +00:00
parent aeecbe07e1
commit a4c817656d

View File

@ -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");