From 65b7ee8a388974fbc6763d17b59855f2e221a6dc Mon Sep 17 00:00:00 2001 From: Andrew Morton Date: Tue, 20 Jan 2004 03:10:20 -0800 Subject: [PATCH] [PATCH] Fix for 32-bit execve() error path From: David Gibson The patch below fixes a bug in ppc64's 32-bit execve() path. It duplicates logic already in the normal fs/exec.c do_execve() to avoid dropping a NULL mm. The bprm.mm becomes NULL once the exec passes the "point of no return". Without this patch a failure past that point (e.g. mmap() failure) will cause an oops, with it just a killed process. --- arch/ppc64/kernel/sys_ppc32.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/ppc64/kernel/sys_ppc32.c b/arch/ppc64/kernel/sys_ppc32.c index 239e00422203e..7d7e88304be8f 100644 --- a/arch/ppc64/kernel/sys_ppc32.c +++ b/arch/ppc64/kernel/sys_ppc32.c @@ -2084,7 +2084,8 @@ out: security_bprm_free(&bprm); out_mm: - mmdrop(bprm.mm); + if (bprm.mm) + mmdrop(bprm.mm); out_file: if (bprm.file) { -- 2.53.0