diff options
Diffstat (limited to 'security')
-rw-r--r-- | security/selinux/selinuxfs.c | 2 | ||||
-rw-r--r-- | security/tomoyo/util.c | 9 |
2 files changed, 3 insertions, 8 deletions
diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c index 55af8c5b57e6..3a6e8731646c 100644 --- a/security/selinux/selinuxfs.c +++ b/security/selinux/selinuxfs.c | |||
@@ -485,7 +485,7 @@ static int sel_mmap_policy(struct file *filp, struct vm_area_struct *vma) | |||
485 | return -EACCES; | 485 | return -EACCES; |
486 | } | 486 | } |
487 | 487 | ||
488 | vma->vm_flags |= VM_RESERVED; | 488 | vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; |
489 | vma->vm_ops = &sel_mmap_policy_ops; | 489 | vma->vm_ops = &sel_mmap_policy_ops; |
490 | 490 | ||
491 | return 0; | 491 | return 0; |
diff --git a/security/tomoyo/util.c b/security/tomoyo/util.c index 867558c98334..2952ba576fb9 100644 --- a/security/tomoyo/util.c +++ b/security/tomoyo/util.c | |||
@@ -949,18 +949,13 @@ bool tomoyo_path_matches_pattern(const struct tomoyo_path_info *filename, | |||
949 | const char *tomoyo_get_exe(void) | 949 | const char *tomoyo_get_exe(void) |
950 | { | 950 | { |
951 | struct mm_struct *mm = current->mm; | 951 | struct mm_struct *mm = current->mm; |
952 | struct vm_area_struct *vma; | ||
953 | const char *cp = NULL; | 952 | const char *cp = NULL; |
954 | 953 | ||
955 | if (!mm) | 954 | if (!mm) |
956 | return NULL; | 955 | return NULL; |
957 | down_read(&mm->mmap_sem); | 956 | down_read(&mm->mmap_sem); |
958 | for (vma = mm->mmap; vma; vma = vma->vm_next) { | 957 | if (mm->exe_file) |
959 | if ((vma->vm_flags & VM_EXECUTABLE) && vma->vm_file) { | 958 | cp = tomoyo_realpath_from_path(&mm->exe_file->f_path); |
960 | cp = tomoyo_realpath_from_path(&vma->vm_file->f_path); | ||
961 | break; | ||
962 | } | ||
963 | } | ||
964 | up_read(&mm->mmap_sem); | 959 | up_read(&mm->mmap_sem); |
965 | return cp; | 960 | return cp; |
966 | } | 961 | } |