[PATCH 0/3] kconfig: Make 'm' safe before modules symbol is defined

From: Ulf Magnusson
Date: Thu Oct 05 2017 - 08:02:50 EST


This patchset fixes a segfault that occurs if 'm' appears in certain
expressions before the modules symbol is defined. The problem is that m is
rewritten to m && <modules symbol> already during parsing. Doing it in
menu_finalize(), which runs after parsing, fixes the problem.

To aid the review and people trying to understand menu_finalize() in the future
(including me), it also renames menu_check_dep() to rewrite_m() and adds
comments to clarify the existing expression rewriting and dependency
propagation logic.

The changes have been tested for regressions using zconfdump(), Kconfiglib, and


Ulf Magnusson (3):
kconfig: Rename menu_check_dep() to rewrite_m()
kconfig: Clarify expression rewriting
kconfig: Clean up modules handling and fix crash

scripts/kconfig/menu.c | 74 ++++++++++++++++++++++++++++++++++++++++++++------
1 file changed, 66 insertions(+), 8 deletions(-)