OSDN Git Service

rethook: fix a potential memleak in rethook_alloc()
authorYi Yang <yiyang13@huawei.com>
Fri, 18 Nov 2022 01:15:34 +0000 (10:15 +0900)
committerMasami Hiramatsu (Google) <mhiramat@kernel.org>
Fri, 18 Nov 2022 01:15:34 +0000 (10:15 +0900)
In rethook_alloc(), the variable rh is not freed or passed out
if handler is NULL, which could lead to a memleak, fix it.

Link: https://lore.kernel.org/all/20221110104438.88099-1-yiyang13@huawei.com/
[Masami: Add "rethook:" tag to the title.]

Fixes: 54ecbe6f1ed5 ("rethook: Add a generic return hook")
Cc: stable@vger.kernel.org
Signed-off-by: Yi Yang <yiyang13@huawei.com>
Acke-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
kernel/trace/rethook.c

index c69d822..32c3dfd 100644 (file)
@@ -83,8 +83,10 @@ struct rethook *rethook_alloc(void *data, rethook_handler_t handler)
 {
        struct rethook *rh = kzalloc(sizeof(struct rethook), GFP_KERNEL);
 
-       if (!rh || !handler)
+       if (!rh || !handler) {
+               kfree(rh);
                return NULL;
+       }
 
        rh->data = data;
        rh->handler = handler;