From: David Gibson <david@gibson.dropbear.id.au>
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.
security_bprm_free(&bprm);
out_mm:
- mmdrop(bprm.mm);
+ if (bprm.mm)
+ mmdrop(bprm.mm);
out_file:
if (bprm.file) {