瀏覽代碼

[IA64] sys_mmap doesn't follow posix.1 when parameter len=0

In IA64 kernel, sys_mmap calls do_mmap2 and do_mmap2 returns addr if
len=0, which means the mmap sys call succeeds.

Posix.1 says:
The mmap() function shall fail if:
[EINVAL] The value of len is zero. 

Here is a patch to fix it.

Signed-off-by: Zhang Yanmin <yanmin.zhang@intel.com>
Acked-by: David Mosberger <davidm@hpl.hp.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Zhang Yanmin 20 年之前
父節點
當前提交
d11cf326bd
共有 1 個文件被更改,包括 0 次插入7 次删除
  1. 0 7
      arch/ia64/kernel/sys_ia64.c

+ 0 - 7
arch/ia64/kernel/sys_ia64.c

@@ -182,13 +182,6 @@ do_mmap2 (unsigned long addr, unsigned long len, int prot, int flags, int fd, un
 		}
 		}
 	}
 	}
 
 
-	/*
-	 * A zero mmap always succeeds in Linux, independent of whether or not the
-	 * remaining arguments are valid.
-	 */
-	if (len == 0)
-		goto out;
-
 	/* Careful about overflows.. */
 	/* Careful about overflows.. */
 	len = PAGE_ALIGN(len);
 	len = PAGE_ALIGN(len);
 	if (!len || len > TASK_SIZE) {
 	if (!len || len > TASK_SIZE) {