]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
coredump: auto cleanup prepare_creds()
authorChristian Brauner <brauner@kernel.org>
Thu, 12 Jun 2025 13:25:34 +0000 (15:25 +0200)
committerChristian Brauner <brauner@kernel.org>
Mon, 7 Jul 2025 10:24:50 +0000 (12:24 +0200)
which will allow us to simplify the exit path in further patches.

Link: https://lore.kernel.org/20250612-work-coredump-massage-v1-20-315c0c34ba94@kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/coredump.c

index b2e9ac34d9a3ab39f0b5bed3a322e90d3e5bd6aa..e9c8696283f6eb45f2f9a0e989123622ab22a852 100644 (file)
@@ -1074,7 +1074,7 @@ void vfs_coredump(const kernel_siginfo_t *siginfo)
        struct mm_struct *mm = current->mm;
        struct linux_binfmt * binfmt;
        const struct cred *old_cred;
-       struct cred *cred;
+       struct cred *cred __free(put_cred) = NULL;
        int retval = 0;
        size_t *argv __free(kfree) = NULL;
        int argc = 0;
@@ -1113,7 +1113,7 @@ void vfs_coredump(const kernel_siginfo_t *siginfo)
 
        retval = coredump_wait(siginfo->si_signo, &core_state);
        if (retval < 0)
-               goto fail_creds;
+               return;
 
        old_cred = override_creds(cred);
 
@@ -1192,8 +1192,6 @@ fail_unlock:
        kfree(cn.corename);
        coredump_finish(cn.core_dumped);
        revert_creds(old_cred);
-fail_creds:
-       put_cred(cred);
        return;
 }