kconfig: Don't leak 'option' arguments during parsing
The following strings would leak before this change: - option env="LEAKED" - option defconfig_list="LEAKED" These come in the form of T_WORD tokens and are always allocated on the heap in zconf.l. Free them. Summary from Valgrind on 'menuconfig' (ARCH=x86) before the fix: LEAK SUMMARY: definitely lost: 344,616 bytes in 14,355 blocks ... Summary after the fix: LEAK SUMMARY: definitely lost: 344,568 bytes in 14,352 blocks ... Signed-off-by: Ulf Magnusson <ulfalizer@gmail.com> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
This commit is contained in:
parent
24161a6711
commit
bc28fe1d5e
@ -236,8 +236,10 @@ symbol_option_list:
|
|||||||
| symbol_option_list T_WORD symbol_option_arg
|
| symbol_option_list T_WORD symbol_option_arg
|
||||||
{
|
{
|
||||||
const struct kconf_id *id = kconf_id_lookup($2, strlen($2));
|
const struct kconf_id *id = kconf_id_lookup($2, strlen($2));
|
||||||
if (id && id->flags & TF_OPTION)
|
if (id && id->flags & TF_OPTION) {
|
||||||
menu_add_option(id->token, $3);
|
menu_add_option(id->token, $3);
|
||||||
|
free($3);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
zconfprint("warning: ignoring unknown option %s", $2);
|
zconfprint("warning: ignoring unknown option %s", $2);
|
||||||
free($2);
|
free($2);
|
||||||
|
Loading…
Reference in New Issue
Block a user