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>
This commit is contained in:
Jovi Zhang
2010-11-10 07:22:18 -06:00
committed by Jason Wessel
parent e53beacd23
commit 85e76ab50a

View File

@@ -2361,7 +2361,7 @@ static int kdb_pid(int argc, const char **argv)
*/ */
static int kdb_ll(int argc, const char **argv) static int kdb_ll(int argc, const char **argv)
{ {
int diag; int diag = 0;
unsigned long addr; unsigned long addr;
long offset = 0; long offset = 0;
unsigned long va; unsigned long va;
@@ -2400,20 +2400,21 @@ static int kdb_ll(int argc, const char **argv)
char buf[80]; char buf[80];
if (KDB_FLAG(CMD_INTERRUPT)) if (KDB_FLAG(CMD_INTERRUPT))
return 0; goto out;
sprintf(buf, "%s " kdb_machreg_fmt "\n", command, va); sprintf(buf, "%s " kdb_machreg_fmt "\n", command, va);
diag = kdb_parse(buf); diag = kdb_parse(buf);
if (diag) if (diag)
return diag; goto out;
addr = va + linkoffset; addr = va + linkoffset;
if (kdb_getword(&va, addr, sizeof(va))) if (kdb_getword(&va, addr, sizeof(va)))
return 0; goto out;
} }
kfree(command);
return 0; out:
kfree(command);
return diag;
} }
static int kdb_kgdb(int argc, const char **argv) static int kdb_kgdb(int argc, const char **argv)