diff options
Diffstat (limited to 'kernel/sys.c')
| -rw-r--r-- | kernel/sys.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/kernel/sys.c b/kernel/sys.c index 840cfdad7bf..2e18d33ca77 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -434,11 +434,12 @@ static DEFINE_MUTEX(reboot_mutex);  SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd,  		void __user *, arg)  { +	struct pid_namespace *pid_ns = task_active_pid_ns(current);  	char buffer[256];  	int ret = 0;  	/* We only trust the superuser with rebooting the system. */ -	if (!capable(CAP_SYS_BOOT)) +	if (!ns_capable(pid_ns->user_ns, CAP_SYS_BOOT))  		return -EPERM;  	/* For safety, we require "magic" arguments. */ @@ -454,7 +455,7 @@ SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd,  	 * pid_namespace, the command is handled by reboot_pid_ns() which will  	 * call do_exit().  	 */ -	ret = reboot_pid_ns(task_active_pid_ns(current), cmd); +	ret = reboot_pid_ns(pid_ns, cmd);  	if (ret)  		return ret;  |