mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 03:01:39 -04:00
coredump: factor out put_cred() calls
Given that do_coredump() calls put_cred() on exit path, it is a bit ugly to do put_cred() + "goto fail" twice, just add the new "fail_creds" label. Signed-off-by: Oleg Nesterov <[email protected]> Cc: David Howells <[email protected]> Cc: Neil Horman <[email protected]> Cc: Roland McGrath <[email protected]> Cc: Andi Kleen <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
parent
d5bf4c4f5f
commit
5e43aef530
1 changed files with 6 additions and 10 deletions
18
fs/exec.c
18
fs/exec.c
|
|
@ -1862,10 +1862,8 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs)
|
|||
goto fail;
|
||||
|
||||
cred = prepare_creds();
|
||||
if (!cred) {
|
||||
retval = -ENOMEM;
|
||||
if (!cred)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
down_write(&mm->mmap_sem);
|
||||
/*
|
||||
|
|
@ -1873,8 +1871,7 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs)
|
|||
*/
|
||||
if (mm->core_state || !__get_dumpable(cprm.mm_flags)) {
|
||||
up_write(&mm->mmap_sem);
|
||||
put_cred(cred);
|
||||
goto fail;
|
||||
goto fail_creds;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -1889,10 +1886,8 @@ void do_coredump(long signr, int exit_code, struct pt_regs *regs)
|
|||
}
|
||||
|
||||
retval = coredump_wait(exit_code, &core_state);
|
||||
if (retval < 0) {
|
||||
put_cred(cred);
|
||||
goto fail;
|
||||
}
|
||||
if (retval < 0)
|
||||
goto fail_creds;
|
||||
|
||||
old_cred = override_creds(cred);
|
||||
|
||||
|
|
@ -2009,9 +2004,10 @@ fail_dropcount:
|
|||
if (ispipe)
|
||||
atomic_dec(&core_dump_count);
|
||||
fail_unlock:
|
||||
revert_creds(old_cred);
|
||||
put_cred(cred);
|
||||
coredump_finish(mm);
|
||||
revert_creds(old_cred);
|
||||
fail_creds:
|
||||
put_cred(cred);
|
||||
fail:
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue