summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@home.transmeta.com>2002-05-26 21:18:34 -0700
committerLinus Torvalds <torvalds@home.transmeta.com>2002-05-26 21:18:34 -0700
commit9e151e545ade89fbbf9990b4e365241ef73d3ac3 (patch)
tree9f703fa211ae53f8bbe48247f842f0b57782116a
parent711f6f981e1f09be4934db63ee4ce42a10f42e30 (diff)
Fix mmap cornercase with wrong return value for invalid "len".
-rw-r--r--mm/mmap.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/mm/mmap.c b/mm/mmap.c
index dee8e7c14103..3bcf054112ed 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -398,12 +398,14 @@ unsigned long do_mmap_pgoff(struct file * file, unsigned long addr, unsigned lon
if (file && (!file->f_op || !file->f_op->mmap))
return -ENODEV;
- if ((len = PAGE_ALIGN(len)) == 0)
+ if (!len)
return addr;
if (len > TASK_SIZE)
return -EINVAL;
+ len = PAGE_ALIGN(len);
+
/* offset overflow? */
if ((pgoff + (len >> PAGE_SHIFT)) < pgoff)
return -EINVAL;