Skip to content

Commit a4527fe

Browse files
Shang XiaoJingrostedt
Shang XiaoJing
authored andcommitted
tracing: Fix memory leak in test_gen_synth_cmd() and test_empty_synth_event()
test_gen_synth_cmd() only free buf in fail path, hence buf will leak when there is no failure. Add kfree(buf) to prevent the memleak. The same reason and solution in test_empty_synth_event(). unreferenced object 0xffff8881127de000 (size 2048): comm "modprobe", pid 247, jiffies 4294972316 (age 78.756s) hex dump (first 32 bytes): 20 67 65 6e 5f 73 79 6e 74 68 5f 74 65 73 74 20 gen_synth_test 20 70 69 64 5f 74 20 6e 65 78 74 5f 70 69 64 5f pid_t next_pid_ backtrace: [<000000004254801a>] kmalloc_trace+0x26/0x100 [<0000000039eb1cf5>] 0xffffffffa00083cd [<000000000e8c3bc8>] 0xffffffffa00086ba [<00000000c293d1ea>] do_one_initcall+0xdb/0x480 [<00000000aa189e6d>] do_init_module+0x1cf/0x680 [<00000000d513222b>] load_module+0x6a50/0x70a0 [<000000001fd4d529>] __do_sys_finit_module+0x12f/0x1c0 [<00000000b36c4c0f>] do_syscall_64+0x3f/0x90 [<00000000bbf20cf3>] entry_SYSCALL_64_after_hwframe+0x63/0xcd unreferenced object 0xffff8881127df000 (size 2048): comm "modprobe", pid 247, jiffies 4294972324 (age 78.728s) hex dump (first 32 bytes): 20 65 6d 70 74 79 5f 73 79 6e 74 68 5f 74 65 73 empty_synth_tes 74 20 20 70 69 64 5f 74 20 6e 65 78 74 5f 70 69 t pid_t next_pi backtrace: [<000000004254801a>] kmalloc_trace+0x26/0x100 [<00000000d4db9a3d>] 0xffffffffa0008071 [<00000000c31354a5>] 0xffffffffa00086ce [<00000000c293d1ea>] do_one_initcall+0xdb/0x480 [<00000000aa189e6d>] do_init_module+0x1cf/0x680 [<00000000d513222b>] load_module+0x6a50/0x70a0 [<000000001fd4d529>] __do_sys_finit_module+0x12f/0x1c0 [<00000000b36c4c0f>] do_syscall_64+0x3f/0x90 [<00000000bbf20cf3>] entry_SYSCALL_64_after_hwframe+0x63/0xcd Link: https://lkml.kernel.org/r/[email protected] Cc: <[email protected]> Cc: <[email protected]> Cc: <[email protected]> Cc: [email protected] Fixes: 9fe41ef ("tracing: Add synth event generation test module") Signed-off-by: Shang XiaoJing <[email protected]> Signed-off-by: Steven Rostedt (Google) <[email protected]>
1 parent 19ba6c8 commit a4527fe

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

kernel/trace/synth_event_gen_test.c

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -120,15 +120,13 @@ static int __init test_gen_synth_cmd(void)
120120

121121
/* Now generate a gen_synth_test event */
122122
ret = synth_event_trace_array(gen_synth_test, vals, ARRAY_SIZE(vals));
123-
out:
123+
free:
124+
kfree(buf);
124125
return ret;
125126
delete:
126127
/* We got an error after creating the event, delete it */
127128
synth_event_delete("gen_synth_test");
128-
free:
129-
kfree(buf);
130-
131-
goto out;
129+
goto free;
132130
}
133131

134132
/*
@@ -227,15 +225,13 @@ static int __init test_empty_synth_event(void)
227225

228226
/* Now trace an empty_synth_test event */
229227
ret = synth_event_trace_array(empty_synth_test, vals, ARRAY_SIZE(vals));
230-
out:
228+
free:
229+
kfree(buf);
231230
return ret;
232231
delete:
233232
/* We got an error after creating the event, delete it */
234233
synth_event_delete("empty_synth_test");
235-
free:
236-
kfree(buf);
237-
238-
goto out;
234+
goto free;
239235
}
240236

241237
static struct synth_field_desc create_synth_test_fields[] = {

0 commit comments

Comments
 (0)