Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6: VM/Security: add security hook to do_brk Security: round mmap hint address above mmap_min_addr security: protect from stack expantion into low vm addresses Security: allow capable check to permit mmap or low vm space SELinux: detect dead booleans SELinux: do not clear f_op when removing entries
This commit is contained in:
11
mm/mmap.c
11
mm/mmap.c
@@ -912,6 +912,9 @@ unsigned long do_mmap_pgoff(struct file * file, unsigned long addr,
|
||||
if (!len)
|
||||
return -EINVAL;
|
||||
|
||||
if (!(flags & MAP_FIXED))
|
||||
addr = round_hint_to_min(addr);
|
||||
|
||||
error = arch_mmap_check(addr, len, flags);
|
||||
if (error)
|
||||
return error;
|
||||
@@ -1615,6 +1618,12 @@ static inline int expand_downwards(struct vm_area_struct *vma,
|
||||
*/
|
||||
if (unlikely(anon_vma_prepare(vma)))
|
||||
return -ENOMEM;
|
||||
|
||||
address &= PAGE_MASK;
|
||||
error = security_file_mmap(0, 0, 0, 0, address, 1);
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
anon_vma_lock(vma);
|
||||
|
||||
/*
|
||||
@@ -1622,8 +1631,6 @@ static inline int expand_downwards(struct vm_area_struct *vma,
|
||||
* is required to hold the mmap_sem in read mode. We need the
|
||||
* anon_vma lock to serialize against concurrent expand_stacks.
|
||||
*/
|
||||
address &= PAGE_MASK;
|
||||
error = 0;
|
||||
|
||||
/* Somebody else might have raced and expanded it already */
|
||||
if (address < vma->vm_start) {
|
||||
|
@@ -829,6 +829,9 @@ unsigned long do_mmap_pgoff(struct file *file,
|
||||
void *result;
|
||||
int ret;
|
||||
|
||||
if (!(flags & MAP_FIXED))
|
||||
addr = round_hint_to_min(addr);
|
||||
|
||||
/* decide whether we should attempt the mapping, and if so what sort of
|
||||
* mapping */
|
||||
ret = validate_mmap_request(file, addr, len, prot, flags, pgoff,
|
||||
|
Reference in New Issue
Block a user