menuconfig: fix NULL pointer dereference when searching a symbol
Searching for PPC_EFIKA results in a segmentation fault, and it's
because get_symbol_prop() returns NULL.
In this case CONFIG_PPC_EFIKA is defined in arch/powerpc/platforms/
52xx/Kconfig, so it won't be parsed if ARCH!=PPC, but menuconfig knows
this symbol when it parses sound/soc/fsl/Kconfig:
config SND_MPC52xx_SOC_EFIKA
tristate "SoC AC97 Audio support for bbplan Efika and STAC9766"
depends on PPC_EFIKA
This bug was introduced by commit bcdedcc1af
("menuconfig: print more
info for symbol without prompts").
Reported-and-tested-by: Borislav Petkov <bp@alien8.de>
Signed-off-by: Li Zefan <lizefan@huawei.com>
Tested-by: Libo Chen <libo.chen@huawei.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Michal Marek <mmarek@suse.cz>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
2a437cd36e
commit
383da76f52
|
@ -600,7 +600,9 @@ void get_symbol_str(struct gstr *r, struct symbol *sym,
|
||||||
}
|
}
|
||||||
for_all_prompts(sym, prop)
|
for_all_prompts(sym, prop)
|
||||||
get_prompt_str(r, prop, head);
|
get_prompt_str(r, prop, head);
|
||||||
|
|
||||||
prop = get_symbol_prop(sym);
|
prop = get_symbol_prop(sym);
|
||||||
|
if (prop) {
|
||||||
str_printf(r, _(" Defined at %s:%d\n"), prop->menu->file->name,
|
str_printf(r, _(" Defined at %s:%d\n"), prop->menu->file->name,
|
||||||
prop->menu->lineno);
|
prop->menu->lineno);
|
||||||
if (!expr_is_yes(prop->visible.expr)) {
|
if (!expr_is_yes(prop->visible.expr)) {
|
||||||
|
@ -608,6 +610,8 @@ void get_symbol_str(struct gstr *r, struct symbol *sym,
|
||||||
expr_gstr_print(prop->visible.expr, r);
|
expr_gstr_print(prop->visible.expr, r);
|
||||||
str_append(r, "\n");
|
str_append(r, "\n");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
hit = false;
|
hit = false;
|
||||||
for_all_properties(sym, prop, P_SELECT) {
|
for_all_properties(sym, prop, P_SELECT) {
|
||||||
if (!hit) {
|
if (!hit) {
|
||||||
|
|
Loading…
Reference in New Issue