Skip to content

Commit 85e76ab

Browse files
Jovi Zhangjwessel
authored andcommitted
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>
1 parent e53beac commit 85e76ab

File tree

1 file changed

+7
-6
lines changed

1 file changed

+7
-6
lines changed

kernel/debug/kdb/kdb_main.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2361,7 +2361,7 @@ static int kdb_pid(int argc, const char **argv)
23612361
*/
23622362
static int kdb_ll(int argc, const char **argv)
23632363
{
2364-
int diag;
2364+
int diag = 0;
23652365
unsigned long addr;
23662366
long offset = 0;
23672367
unsigned long va;
@@ -2400,20 +2400,21 @@ static int kdb_ll(int argc, const char **argv)
24002400
char buf[80];
24012401

24022402
if (KDB_FLAG(CMD_INTERRUPT))
2403-
return 0;
2403+
goto out;
24042404

24052405
sprintf(buf, "%s " kdb_machreg_fmt "\n", command, va);
24062406
diag = kdb_parse(buf);
24072407
if (diag)
2408-
return diag;
2408+
goto out;
24092409

24102410
addr = va + linkoffset;
24112411
if (kdb_getword(&va, addr, sizeof(va)))
2412-
return 0;
2412+
goto out;
24132413
}
2414-
kfree(command);
24152414

2416-
return 0;
2415+
out:
2416+
kfree(command);
2417+
return diag;
24172418
}
24182419

24192420
static int kdb_kgdb(int argc, const char **argv)

0 commit comments

Comments
 (0)