• Ulf Magnusson's avatar
    kconfig: Don't leak main menus during parsing · 0724a7c3
    Ulf Magnusson authored
    If a 'mainmenu' entry appeared in the Kconfig files, two things would
    leak:
    
    	- The 'struct property' allocated for the default "Linux Kernel
    	  Configuration" prompt.
    
    	- The string for the T_WORD/T_WORD_QUOTE prompt after the
    	  T_MAINMENU token, allocated on the heap in zconf.l.
    
    To fix it, introduce a new 'no_mainmenu_stmt' nonterminal that matches
    if there's no 'mainmenu' and adds the default prompt. That means the
    prompt only gets allocated once regardless of whether there's a
    'mainmenu' statement or not, and managing it becomes simple.
    
    Summary from Valgrind on 'menuconfig' (ARCH=x86) before the fix:
    
    	LEAK SUMMARY:
    	   definitely lost: 344,568 bytes in 14,352 blocks
    	   ...
    
    Summary after the fix:
    
    	LEAK SUMMARY:
    	   definitely lost: 344,440 bytes in 14,350 blocks
    	   ...
    Signed-off-by: default avatarUlf Magnusson <ulfalizer@gmail.com>
    Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
    0724a7c3
zconf.y 16.1 KB