diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2018-01-26 21:16:37 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2018-01-26 21:16:41 +0100 |
commit | ecf2350530f45fefe7bab75dc63ccf56a539e8b7 (patch) | |
tree | 1d7bf320127dde44a0ab8dea7866908b10efcad7 | |
parent | 01811d0d7209332aa7ba90acc2dba9b7b2c0067d (diff) | |
download | barebox-ecf2350530f45fefe7bab75dc63ccf56a539e8b7.tar.gz barebox-ecf2350530f45fefe7bab75dc63ccf56a539e8b7.tar.xz |
bootargs: Fix memory leak in linux_bootargs_get()
globalvar_get_match() returns an allocated string which may be
empty. We have to free() the empty string aswell.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | common/bootargs.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/common/bootargs.c b/common/bootargs.c index a89f23a3f2..f0ab689158 100644 --- a/common/bootargs.c +++ b/common/bootargs.c @@ -56,19 +56,21 @@ const char *linux_bootargs_get(void) bootargs = basprintf("%s mtdparts=%s", linux_bootargs, parts); free(linux_bootargs); - free(parts); linux_bootargs = bootargs; } + free(parts); + parts = globalvar_get_match("linux.blkdevparts.", ";"); if (strlen(parts)) { bootargs = basprintf("%s blkdevparts=%s", linux_bootargs, parts); free(linux_bootargs); - free(parts); linux_bootargs = bootargs; } + free(parts); + return linux_bootargs; } |