* [Patch] fs/binfmt_elf.c: fix wrong return values
@ 2008-05-03 14:14 WANG Cong
0 siblings, 0 replies; only message in thread
From: WANG Cong @ 2008-05-03 14:14 UTC (permalink / raw)
To: LKML; +Cc: Alexander Viro, Andrew Morton, linux-fsdevel
When strnlen_user() fails, return 0 is suspecious.
What's more, the caller returns 0 on success, so that logic is
obviously wrong.
I am not sure if returning -EINVAL is good enough. I think it's
better than -EFAULT here.
NOTE: This patch is _not_ tested yet!
Signed-off-by: WANG Cong <wangcong@zeuux.org>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>
---
fs/binfmt_elf.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index 43254e3..10f9642 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -256,7 +256,7 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
return -EFAULT;
len = strnlen_user((void __user *)p, MAX_ARG_STRLEN);
if (!len || len > MAX_ARG_STRLEN)
- return 0;
+ return -EINVAL;
p += len;
}
if (__put_user(0, argv))
@@ -268,7 +268,7 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
return -EFAULT;
len = strnlen_user((void __user *)p, MAX_ARG_STRLEN);
if (!len || len > MAX_ARG_STRLEN)
- return 0;
+ return -EINVAL;
p += len;
}
if (__put_user(0, envp))
--
1.5.4.1
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2008-05-03 14:10 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-03 14:14 [Patch] fs/binfmt_elf.c: fix wrong return values WANG Cong
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.