summaryrefslogtreecommitdiffstats
path: root/kernel/security/selinux/hooks.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/security/selinux/hooks.c')
-rw-r--r--kernel/security/selinux/hooks.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/security/selinux/hooks.c b/kernel/security/selinux/hooks.c
index 212070e1d..7f8d7f19e 100644
--- a/kernel/security/selinux/hooks.c
+++ b/kernel/security/selinux/hooks.c
@@ -3288,7 +3288,8 @@ static int file_map_prot_check(struct file *file, unsigned long prot, int shared
int rc = 0;
if (default_noexec &&
- (prot & PROT_EXEC) && (!file || (!shared && (prot & PROT_WRITE)))) {
+ (prot & PROT_EXEC) && (!file || IS_PRIVATE(file_inode(file)) ||
+ (!shared && (prot & PROT_WRITE)))) {
/*
* We are making executable an anonymous mapping or a
* private file mapping that will also be writable.