Commit 85e76ab50aecbdc9011806f2f8943450ccb0d93c

Authored by Jovi Zhang
Committed by Jason Wessel
1 parent e53beacd23

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)