binfmt_elf_fdpic: Fix clear_user() error handling
authorTakuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
Tue, 1 Jun 2010 13:10:47 +0000 (14:10 +0100)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 1 Jun 2010 15:11:06 +0000 (08:11 -0700)
commite30c7c3b306312c157d67eedd6a01920518b756c
tree4eae3fe0331bd6ab4e72946574ddc619d7cc127e
parent293a7cfeedc2b2380a7c7274902323c3cf5f7575
binfmt_elf_fdpic: Fix clear_user() error handling

clear_user() returns the number of bytes that could not be copied rather than
an error code.  So we should return -EFAULT rather than directly returning the
results.

Without this patch, positive values may be returned to elf_fdpic_map_file()
and the following error handlings do not function as expected.

1.
ret = elf_fdpic_map_file_constdisp_on_uclinux(params, file, mm);
if (ret < 0)
return ret;
2.
ret = elf_fdpic_map_file_by_direct_mmap(params, file, mm);
if (ret < 0)
return ret;

Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya@oss.ntt.co.jp>
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Mike Frysinger <vapier@gentoo.org>
CC: Alexander Viro <viro@zeniv.linux.org.uk>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Daisuke HATAYAMA <d.hatayama@jp.fujitsu.com>
CC: Paul Mundt <lethal@linux-sh.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/binfmt_elf_fdpic.c