Commit 85e76ab50aecbdc9011806f2f8943450ccb0d93c
Committed by
Jason Wessel
1 parent
e53beacd23
Exists in
master
and in
39 other branches
kdb: fix memory leak in kdb_main.c
Call kfree in the error path as well as the success path in kdb_ll(). Signed-off-by: Jovi Zhang <bookjovi@gmail.com> Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
Showing 1 changed file with 7 additions and 6 deletions Side-by-side Diff
kernel/debug/kdb/kdb_main.c
... | ... | @@ -2361,7 +2361,7 @@ |
2361 | 2361 | */ |
2362 | 2362 | static int kdb_ll(int argc, const char **argv) |
2363 | 2363 | { |
2364 | - int diag; | |
2364 | + int diag = 0; | |
2365 | 2365 | unsigned long addr; |
2366 | 2366 | long offset = 0; |
2367 | 2367 | unsigned long va; |
2368 | 2368 | |
2369 | 2369 | |
2370 | 2370 | |
2371 | 2371 | |
... | ... | @@ -2400,20 +2400,21 @@ |
2400 | 2400 | char buf[80]; |
2401 | 2401 | |
2402 | 2402 | if (KDB_FLAG(CMD_INTERRUPT)) |
2403 | - return 0; | |
2403 | + goto out; | |
2404 | 2404 | |
2405 | 2405 | sprintf(buf, "%s " kdb_machreg_fmt "\n", command, va); |
2406 | 2406 | diag = kdb_parse(buf); |
2407 | 2407 | if (diag) |
2408 | - return diag; | |
2408 | + goto out; | |
2409 | 2409 | |
2410 | 2410 | addr = va + linkoffset; |
2411 | 2411 | if (kdb_getword(&va, addr, sizeof(va))) |
2412 | - return 0; | |
2412 | + goto out; | |
2413 | 2413 | } |
2414 | - kfree(command); | |
2415 | 2414 | |
2416 | - return 0; | |
2415 | +out: | |
2416 | + kfree(command); | |
2417 | + return diag; | |
2417 | 2418 | } |
2418 | 2419 | |
2419 | 2420 | static int kdb_kgdb(int argc, const char **argv) |