Re: [PATCH] Check return from argv_split() in do_coredump().

From: AmÃrico Wang
Date: Fri Dec 26 2008 - 01:47:24 EST


On Wed, Dec 24, 2008 at 03:16:16PM +0900, Tetsuo Handa wrote:
>do_coredump() accesses helper_argv[0] without checking helper_argv != NULL.
>Though, likely helper_argv != NULL.
>
>Below versions have this problem.
>
> 2.6.24.7
> 2.6.25.20
> 2.6.26.8
> 2.6.27.10
> 2.6.28-rc9
> mmotm 2008-12-22-16-14
>
>Signed-off-by: Tetsuo Handa <penguin-kernel@xxxxxxxxxxxxxxxxxxx>
>---
> fs/exec.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
>--- linux-2.6.28-rc9-mm1.orig/fs/exec.c
>+++ linux-2.6.28-rc9-mm1/fs/exec.c
>@@ -1809,10 +1809,15 @@ int do_coredump(long signr, int exit_cod
> if ((!ispipe) && (core_limit < binfmt->min_coredump))
> goto fail_unlock;
>
> if (ispipe) {
> helper_argv = argv_split(GFP_KERNEL, corename+1, &helper_argc);
>+ if (!helper_argv) {
>+ printk(KERN_WARNING "%s failed to allocate memory\n",
>+ __func__);
>+ goto fail_unlock;

How about going to the line:

current->fsuid = fsuid;

? Because when argv_split() fails, helper_argv is NULL and doesn't need
to be checked again.

Otherwise,

Reviewed-by: WANG Cong <wangcong@xxxxxxxxx>

Thanks.

--
"Against stupidity, the gods themselves, contend in vain."

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/