Check for CAP_SYS_RESOURCE in prctl(PR_SET_MM, ...)

If sys_prctl is called with PR_SET_MM without CAP_SYS_RESOURCE,
the syscall should return failure with errno set to EPERM.
See: http://man7.org/linux/man-pages/man2/prctl.2.html
PiperOrigin-RevId: 224182874
Change-Id: I630d1dd44af8b444dd16e8e58a0764a0cf1ad9a3
This commit is contained in:
Zach Koopmans
2018-12-05 10:53:51 -08:00
committed by Shentubot
parent fab029c50b
commit 06131fe749
+4
View File
@@ -87,6 +87,10 @@ func Prctl(t *kernel.Task, args arch.SyscallArguments) (uintptr, *kernel.Syscall
}
case linux.PR_SET_MM:
if !t.HasCapability(linux.CAP_SYS_RESOURCE) {
return 0, nil, syscall.EPERM
}
switch args[1].Int() {
case linux.PR_SET_MM_EXE_FILE:
fd := kdefs.FD(args[2].Int())