From 4425c88d5a5ee30d8427fa2ac8d58c423215d1e0 Mon Sep 17 00:00:00 2001 From: Wang Han <416810799@qq.com> Date: Sat, 8 Nov 2025 17:55:31 +0800 Subject: [PATCH] Fix missing unlock on error path --- kernel/allowlist.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/kernel/allowlist.c b/kernel/allowlist.c index b7a15143..5ac48e4f 100644 --- a/kernel/allowlist.c +++ b/kernel/allowlist.c @@ -372,18 +372,18 @@ static void do_persistent_allow_list(struct callback_head *_cb) filp_open(KERNEL_SU_ALLOWLIST, O_WRONLY | O_CREAT | O_TRUNC, 0644); if (IS_ERR(fp)) { pr_err("save_allow_list create file failed: %ld\n", PTR_ERR(fp)); - return; + goto unlock; } // store magic and version if (kernel_write(fp, &magic, sizeof(magic), &off) != sizeof(magic)) { pr_err("save_allow_list write magic failed.\n"); - goto exit; + goto close_file; } if (kernel_write(fp, &version, sizeof(version), &off) != sizeof(version)) { pr_err("save_allow_list write version failed.\n"); - goto exit; + goto close_file; } list_for_each (pos, &allow_list) { @@ -394,8 +394,9 @@ static void do_persistent_allow_list(struct callback_head *_cb) kernel_write(fp, &p->profile, sizeof(p->profile), &off); } -exit: +close_file: filp_close(fp, 0); +unlock: mutex_unlock(&allowlist_mutex); }