Be extra extra careful about what we dereference.
[oweals/busybox.git] / init / poweroff.c
index 007099d4d298e12696421fcb838b61a3cf99aa2f..8bb20e9bbb949ef5a1159896c9de61ffa777fc0d 100644 (file)
@@ -28,7 +28,10 @@ extern int poweroff_main(int argc, char **argv)
 {
 #ifdef BB_FEATURE_LINUXRC
        /* don't assume init's pid == 1 */
-       return(kill(*(find_pid_by_name("init")), SIGUSR2));
+       pid_t *pid = find_pid_by_name("init");
+       if (!pid || *pid<=0)
+               error_msg_and_die("no process killed");
+       return(kill(*pid, SIGUSR2));
 #else
        return(kill(1, SIGUSR2));
 #endif