From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from asavdk4.altibox.net ([109.247.116.15]:43953 "EHLO asavdk4.altibox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750799AbeBTUjK (ORCPT ); Tue, 20 Feb 2018 15:39:10 -0500 Date: Tue, 20 Feb 2018 21:39:04 +0100 From: Sam Ravnborg Subject: Re: [PATCH] kconfig: Don't leak choice names during parsing Message-ID: <20180220203904.GA14220@ravnborg.org> References: <1519126829-7257-1-git-send-email-yamada.masahiro@socionext.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Sender: linux-kbuild-owner@vger.kernel.org List-ID: To: Ulf Magnusson Cc: Masahiro Yamada , Linux Kbuild mailing list , Michal Marek , Randy Dunlap , "Luis R. Rodriguez" , Linux Kernel Mailing List On Tue, Feb 20, 2018 at 08:54:58PM +0100, Ulf Magnusson wrote: > On Tue, Feb 20, 2018 at 12:40 PM, Masahiro Yamada > wrote: > > The named choice is not used in the kernel tree, but if it were used, > > it would not be freed. > > > > The intention of the named choice can be seen in the log of > > commit 5a1aa8a1aff6 ("kconfig: add named choice group"). > > > > There is room for argument if this is useful in practice, but anyway > > I am fixing the memory leak. > > > > Signed-off-by: Masahiro Yamada > > --- > > > > scripts/kconfig/zconf.y | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/scripts/kconfig/zconf.y b/scripts/kconfig/zconf.y > > index 4be9805..4893676 100644 > > --- a/scripts/kconfig/zconf.y > > +++ b/scripts/kconfig/zconf.y > > @@ -276,6 +276,7 @@ choice: T_CHOICE word_opt T_EOL > > sym->flags |= SYMBOL_AUTO; > > menu_add_entry(sym); > > menu_add_expr(P_CHOICE, NULL, NULL); > > + free($2); > > printd(DEBUG_PARSE, "%s:%d:choice\n", zconf_curname(), zconf_lineno()); > > }; > > > > -- > > 2.7.4 > > > > Reviewed-by: Ulf Magnusson > > Only place I've seen named choices in practice is in the esp-idf > project. Not sure what they're using them for. The plan with named choices was that it should allow one to do something like this: # in one file the choice was defined: choice FOOBAR prompt "foobar" config SAMBAR bool "bar" endchoice # and in another file the choice was extended: choice FOOBAR config SAMFOO bool "foo" endchoice The user was then presented only with a single list of choices. The idea was that this would allow better support for a base configuration that could be extended in another file. Think arch/Kconfig versus an arch specific Kconfig file. But Roman nor I never got around to actually implement this. Most likely because the need was not big enough. Sam