diff options
author | Rusty Russell <rusty@rustcorp.com.au> | 2012-06-28 11:04:25 +0930 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2012-06-28 05:19:24 +0200 |
commit | f80e399ab26ea23ba258f885cec7c6c28c62baaa (patch) | |
tree | be19d66212b5768a4503e24fcde9a4058c7bd87d /source4/smbd | |
parent | 0a1aaca1bd88ae83f287511a6a510c5a886dc60b (diff) | |
download | samba-f80e399ab26ea23ba258f885cec7c6c28c62baaa.tar.gz samba-f80e399ab26ea23ba258f885cec7c6c28c62baaa.tar.bz2 samba-f80e399ab26ea23ba258f885cec7c6c28c62baaa.zip |
source4/smbd/pidfile: don't panic if pid file is corrupt.
In particular, on a virtual machine after a forced reboot, it
contained "Ille" instead of a valid PID. Given it was the right
length, I'm assuming it was filesystem corruption.
process_exists_by_pid() then panics, when given a pid < 1.
Reported-by: lostogre on #samba-technical
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Autobuild-User(master): Rusty Russell <rusty@rustcorp.com.au>
Autobuild-Date(master): Thu Jun 28 05:19:24 CEST 2012 on sn-devel-104
Diffstat (limited to 'source4/smbd')
-rw-r--r-- | source4/smbd/pidfile.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/source4/smbd/pidfile.c b/source4/smbd/pidfile.c index b7d1c27cd0..32d3964302 100644 --- a/source4/smbd/pidfile.c +++ b/source4/smbd/pidfile.c @@ -57,6 +57,9 @@ pid_t pidfile_pid(const char *piddir, const char *name) } ret = (pid_t)atoi(pidstr); + if (ret <= 0) { + goto noproc; + } if (!process_exists_by_pid(ret)) { goto noproc; |