--- linux/mm/mmap.c.orig 2002-12-11 14:27:04.000000000 +0100 +++ linux/mm/mmap.c 2002-12-11 14:28:09.000000000 +0100 @@ -421,14 +421,14 @@ if (file && (!file->f_op || !file->f_op->mmap)) return -ENODEV; - if (!len) + if (len == 0) return addr; - if (len > TASK_SIZE) - return -EINVAL; - len = PAGE_ALIGN(len); + if (len > TASK_SIZE || len == 0) + return -EINVAL; + /* offset overflow? */ if ((pgoff + (len >> PAGE_SHIFT)) < pgoff) return -EINVAL;