mirror of https://github.com/mirror/busybox.git
Be extra extra careful about what we dereference.
parent
d50a61956c
commit
332394b577
5
halt.c
5
halt.c
|
@ -28,7 +28,10 @@ extern int halt_main(int argc, char **argv)
|
|||
{
|
||||
#ifdef BB_FEATURE_LINUXRC
|
||||
/* don't assume init's pid == 1 */
|
||||
return(kill(*(find_pid_by_name("init")), SIGUSR1));
|
||||
pid_t *pid = find_pid_by_name("init");
|
||||
if (!pid || *pid<=0)
|
||||
error_msg_and_die("no process killed");
|
||||
return(kill(*pid, SIGUSR1));
|
||||
#else
|
||||
return(kill(1, SIGUSR1));
|
||||
#endif
|
||||
|
|
|
@ -28,7 +28,10 @@ extern int halt_main(int argc, char **argv)
|
|||
{
|
||||
#ifdef BB_FEATURE_LINUXRC
|
||||
/* don't assume init's pid == 1 */
|
||||
return(kill(*(find_pid_by_name("init")), SIGUSR1));
|
||||
pid_t *pid = find_pid_by_name("init");
|
||||
if (!pid || *pid<=0)
|
||||
error_msg_and_die("no process killed");
|
||||
return(kill(*pid, SIGUSR1));
|
||||
#else
|
||||
return(kill(1, SIGUSR1));
|
||||
#endif
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
5
reboot.c
5
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
|
||||
|
|
Loading…
Reference in New Issue