aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sys.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sys.c')
-rw-r--r--kernel/sys.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/kernel/sys.c b/kernel/sys.c
index e7006eb6c1e4..ba0ae8eea6fb 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -1908,7 +1908,7 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
1908 error = prctl_get_seccomp(); 1908 error = prctl_get_seccomp();
1909 break; 1909 break;
1910 case PR_SET_SECCOMP: 1910 case PR_SET_SECCOMP:
1911 error = prctl_set_seccomp(arg2); 1911 error = prctl_set_seccomp(arg2, (char __user *)arg3);
1912 break; 1912 break;
1913 case PR_GET_TSC: 1913 case PR_GET_TSC:
1914 error = GET_TSC_CTL(arg2); 1914 error = GET_TSC_CTL(arg2);
@@ -1979,6 +1979,16 @@ SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
1979 error = put_user(me->signal->is_child_subreaper, 1979 error = put_user(me->signal->is_child_subreaper,
1980 (int __user *) arg2); 1980 (int __user *) arg2);
1981 break; 1981 break;
1982 case PR_SET_NO_NEW_PRIVS:
1983 if (arg2 != 1 || arg3 || arg4 || arg5)
1984 return -EINVAL;
1985
1986 current->no_new_privs = 1;
1987 break;
1988 case PR_GET_NO_NEW_PRIVS:
1989 if (arg2 || arg3 || arg4 || arg5)
1990 return -EINVAL;
1991 return current->no_new_privs ? 1 : 0;
1982 default: 1992 default:
1983 error = -EINVAL; 1993 error = -EINVAL;
1984 break; 1994 break;