Be extra extra careful about what we dereference.
[oweals/busybox.git] / reboot.c
index 74d2cf6434c62856f721dc34600e2664b7899181..35c147b341080eef67427919f613070acb1e8be7 100644 (file)
--- a/reboot.c
+++ b/reboot.c
@@ -28,7 +28,10 @@ extern int reboot_main(int argc, char **argv)
 {
 #ifdef BB_FEATURE_LINUXRC
        /* don't assume init's pid == 1 */
-       return(kill(*(find_pid_by_name("init")), SIGTERM));
+       pid_t *pid = find_pid_by_name("init");
+       if (!pid || *pid<=0)
+               error_msg_and_die("no process killed");
+       return(kill(*pid, SIGTERM));
 #else
        return(kill(1, SIGTERM));
 #endif