diff options
| author | Linus Torvalds <torvalds@home.transmeta.com> | 2002-05-26 21:18:34 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2002-05-26 21:18:34 -0700 |
| commit | 9e151e545ade89fbbf9990b4e365241ef73d3ac3 (patch) | |
| tree | 9f703fa211ae53f8bbe48247f842f0b57782116a | |
| parent | 711f6f981e1f09be4934db63ee4ce42a10f42e30 (diff) | |
Fix mmap cornercase with wrong return value for invalid "len".
| -rw-r--r-- | mm/mmap.c | 4 |
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; |
