diff options
Diffstat (limited to 'net/core/scm.c')
-rw-r--r-- | net/core/scm.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/net/core/scm.c b/net/core/scm.c index 530bee8d9ed9..100ba6d9d478 100644 --- a/net/core/scm.c +++ b/net/core/scm.c | |||
@@ -24,6 +24,8 @@ | |||
24 | #include <linux/interrupt.h> | 24 | #include <linux/interrupt.h> |
25 | #include <linux/netdevice.h> | 25 | #include <linux/netdevice.h> |
26 | #include <linux/security.h> | 26 | #include <linux/security.h> |
27 | #include <linux/pid.h> | ||
28 | #include <linux/nsproxy.h> | ||
27 | 29 | ||
28 | #include <asm/system.h> | 30 | #include <asm/system.h> |
29 | #include <asm/uaccess.h> | 31 | #include <asm/uaccess.h> |
@@ -42,7 +44,7 @@ | |||
42 | 44 | ||
43 | static __inline__ int scm_check_creds(struct ucred *creds) | 45 | static __inline__ int scm_check_creds(struct ucred *creds) |
44 | { | 46 | { |
45 | if ((creds->pid == current->tgid || capable(CAP_SYS_ADMIN)) && | 47 | if ((creds->pid == task_tgid_vnr(current) || capable(CAP_SYS_ADMIN)) && |
46 | ((creds->uid == current->uid || creds->uid == current->euid || | 48 | ((creds->uid == current->uid || creds->uid == current->euid || |
47 | creds->uid == current->suid) || capable(CAP_SETUID)) && | 49 | creds->uid == current->suid) || capable(CAP_SETUID)) && |
48 | ((creds->gid == current->gid || creds->gid == current->egid || | 50 | ((creds->gid == current->gid || creds->gid == current->egid || |