diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-05-30 13:30:51 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-05-31 13:11:54 -0400 |
commit | e5467859f7f79b69fc49004403009dfdba3bec53 (patch) | |
tree | 73b011daf79eeddd61bbcaf65cd197b5e5f6f149 /mm/mmap.c | |
parent | d007794a182bc072a7b7479909dbd0d67ba341be (diff) |
split ->file_mmap() into ->mmap_addr()/->mmap_file()
... i.e. file-dependent and address-dependent checks.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'mm/mmap.c')
-rw-r--r-- | mm/mmap.c | 12 |
1 files changed, 8 insertions, 4 deletions
@@ -1101,7 +1101,11 @@ static unsigned long do_mmap_pgoff(struct file *file, unsigned long addr, | |||
1101 | } | 1101 | } |
1102 | } | 1102 | } |
1103 | 1103 | ||
1104 | error = security_file_mmap(file, reqprot, prot, flags, addr, 0); | 1104 | error = security_mmap_addr(addr); |
1105 | if (error) | ||
1106 | return error; | ||
1107 | |||
1108 | error = security_mmap_file(file, reqprot, prot, flags); | ||
1105 | if (error) | 1109 | if (error) |
1106 | return error; | 1110 | return error; |
1107 | 1111 | ||
@@ -1817,7 +1821,7 @@ int expand_downwards(struct vm_area_struct *vma, | |||
1817 | return -ENOMEM; | 1821 | return -ENOMEM; |
1818 | 1822 | ||
1819 | address &= PAGE_MASK; | 1823 | address &= PAGE_MASK; |
1820 | error = security_file_mmap(NULL, 0, 0, 0, address, 1); | 1824 | error = security_mmap_addr(address); |
1821 | if (error) | 1825 | if (error) |
1822 | return error; | 1826 | return error; |
1823 | 1827 | ||
@@ -2205,7 +2209,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len) | |||
2205 | if (!len) | 2209 | if (!len) |
2206 | return addr; | 2210 | return addr; |
2207 | 2211 | ||
2208 | error = security_file_mmap(NULL, 0, 0, 0, addr, 1); | 2212 | error = security_mmap_addr(addr); |
2209 | if (error) | 2213 | if (error) |
2210 | return error; | 2214 | return error; |
2211 | 2215 | ||
@@ -2561,7 +2565,7 @@ int install_special_mapping(struct mm_struct *mm, | |||
2561 | vma->vm_ops = &special_mapping_vmops; | 2565 | vma->vm_ops = &special_mapping_vmops; |
2562 | vma->vm_private_data = pages; | 2566 | vma->vm_private_data = pages; |
2563 | 2567 | ||
2564 | ret = security_file_mmap(NULL, 0, 0, 0, vma->vm_start, 1); | 2568 | ret = security_mmap_addr(vma->vm_start); |
2565 | if (ret) | 2569 | if (ret) |
2566 | goto out; | 2570 | goto out; |
2567 | 2571 | ||