From: Ulf Magnusson Date: Sun, 8 Oct 2017 17:11:20 +0000 (+0200) Subject: kconfig: Don't leak 'option' arguments during parsing X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=bc28fe1d5ede887312a329d06ac7ba1ba51d0d85;p=openwrt%2Fstaging%2Fblogic.git 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 Signed-off-by: Masahiro Yamada --- diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y index 1c6d33bc9702..df9cb12111e4 100644 --- a/scripts/kconfig/zconf.y +++ b/scripts/kconfig/zconf.y @@ -236,8 +236,10 @@ symbol_option_list: | symbol_option_list T_WORD symbol_option_arg { 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); + free($3); + } else zconfprint("warning: ignoring unknown option %s", $2); free($2);