From 06bf44de11e2206af311ad2aff32e2c2a8c77bb0 Mon Sep 17 00:00:00 2001 From: backslashxx <118538522+backslashxx@users.noreply.github.com> Date: Tue, 26 Aug 2025 23:17:57 +0700 Subject: [PATCH] kernel: micro-opt escape_to_root Signed-off-by: rsuntk --- kernel/core_hook.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/kernel/core_hook.c b/kernel/core_hook.c index 4c042d73..37e321fe 100644 --- a/kernel/core_hook.c +++ b/kernel/core_hook.c @@ -156,15 +156,16 @@ static void disable_seccomp(struct task_struct *tsk) void escape_to_root(void) { - struct cred *newcreds = prepare_creds(); - if (newcreds == NULL) { - pr_err("%s: failed to allocate new cred.\n", __func__); + struct cred *newcreds; + + if (current_euid().val == 0) { + pr_warn("Already root, don't escape!\n"); return; } - - if (newcreds->euid.val == 0) { - pr_warn("Already root, don't escape!\n"); - abort_creds(newcreds); + + newcreds = prepare_creds(); + if (newcreds == NULL) { + pr_err("%s: failed to allocate new cred.\n", __func__); return; }