Take arch_mmap_check() into get_unmapped_area()
Acked-by: Hugh Dickins <hugh.dickins@tiscali.co.uk> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
14
mm/mmap.c
14
mm/mmap.c
@ -931,13 +931,9 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
|
||||
if (!(flags & MAP_FIXED))
|
||||
addr = round_hint_to_min(addr);
|
||||
|
||||
error = arch_mmap_check(addr, len, flags);
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
/* Careful about overflows.. */
|
||||
len = PAGE_ALIGN(len);
|
||||
if (!len || len > TASK_SIZE)
|
||||
if (!len)
|
||||
return -ENOMEM;
|
||||
|
||||
/* offset overflow? */
|
||||
@ -1437,6 +1433,14 @@ get_unmapped_area(struct file *file, unsigned long addr, unsigned long len,
|
||||
unsigned long (*get_area)(struct file *, unsigned long,
|
||||
unsigned long, unsigned long, unsigned long);
|
||||
|
||||
unsigned long error = arch_mmap_check(addr, len, flags);
|
||||
if (error)
|
||||
return error;
|
||||
|
||||
/* Careful about overflows.. */
|
||||
if (len > TASK_SIZE)
|
||||
return -ENOMEM;
|
||||
|
||||
get_area = current->mm->get_unmapped_area;
|
||||
if (file && file->f_op && file->f_op->get_unmapped_area)
|
||||
get_area = file->f_op->get_unmapped_area;
|
||||
|
Reference in New Issue
Block a user