linux/scripts/kconfig
Masahiro Yamada 1f035a5291 kconfig: nconf: fix core dump when searching in empty menu
The following code in get_mext_match():

  index = (index + items_num) % items_num;

... makes the program crash when items_num is zero (that is, the menu
is empty).

A menu can be empty when all the options in it are hidden by unmet
'depends on'.

For example,

  menu "This menu will be empty"

  config FOO
         bool "foo"
         depends on BROKEN

  endmenu

If you visit this menu and press a '/' key and then another key, nconf
crashes with:

  Floating point exception (core dumped)

When the number of items is zero, it does not make sense to search in
the menu. In this case, current_item() returns NULL, and item_index()
ERR, but get_mext_match() does not check it.

Let's make get_mext_match() just return if the menu is empty.

While I am here, change items_num from 'int' to 'unsigned int' because
it should never become negative.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
2021-04-14 15:22:49 +09:00
..
lxdialog kconfig: lxdialog: A spello fix and a punctuation added 2021-04-14 15:22:49 +09:00
tests kconfig: change "modules" from sub-option to first-level attribute 2021-04-14 15:22:49 +09:00
.gitignore kconfig: qconf: compile moc object separately 2020-08-01 20:54:39 +09:00
conf.c kconfig: remove allnoconfig_y option 2021-04-14 15:22:49 +09:00
confdata.c kconfig: use true and false for bool variable 2021-04-14 15:22:49 +09:00
expr.c kconfig: distinguish between dependencies and visibility in help text 2020-01-07 02:18:45 +09:00
expr.h kconfig: remove allnoconfig_y option 2021-04-14 15:22:49 +09:00
gconf-cfg.sh kconfig: do not require pkg-config on make {menu,n}config 2018-09-03 02:13:48 +09:00
gconf.c kconfig: fix an "implicit declaration of function" warning 2020-01-10 02:44:54 +09:00
gconf.glade scripts/kconfig/gconf.glade Update broken web addresses. 2010-09-17 16:54:42 +02:00
images.c kconfig: constify XPM data 2020-08-14 13:30:03 +09:00
images.h kconfig: constify XPM data 2020-08-14 13:30:03 +09:00
lexer.l kconfig: change "modules" from sub-option to first-level attribute 2021-04-14 15:22:49 +09:00
list.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
lkc_proto.h kconfig: qconf: fix incomplete type 'struct gstr' warning 2020-09-20 12:58:49 +09:00
lkc.h kconfig: change "modules" from sub-option to first-level attribute 2021-04-14 15:22:49 +09:00
Makefile kconfig: do not use allnoconfig_y option 2021-04-14 15:22:49 +09:00
mconf-cfg.sh kconfig: mconf: fix HOSTCC call 2021-01-27 03:17:42 +09:00
mconf.c kconfig: move JUMP_NB to mconf.c 2021-04-14 15:22:48 +09:00
menu.c kconfig: change "modules" from sub-option to first-level attribute 2021-04-14 15:22:49 +09:00
merge_config.sh merge_config.sh: ignore unwanted grep errors 2019-09-04 23:12:50 +09:00
nconf-cfg.sh kconfig: be more helpful if pkg-config is missing 2019-11-11 20:10:01 +09:00
nconf.c kconfig: nconf: fix core dump when searching in empty menu 2021-04-14 15:22:49 +09:00
nconf.gui.c kconfig/[mn]conf: handle backspace (^H) key 2019-03-29 22:48:01 +09:00
nconf.h kconfig: convert to SPDX License Identifier 2018-12-28 22:22:28 +09:00
parser.y kconfig: change "modules" from sub-option to first-level attribute 2021-04-14 15:22:49 +09:00
preprocess.c kconfig: fix return value of do_error_if() 2020-12-21 14:48:54 +09:00
qconf-cfg.sh kconfig: qconf: use a variable to pass packages to pkg-config 2020-12-08 23:31:29 +09:00
qconf.cc kconfig: qconf: show Qt version in the About dialog 2020-12-08 23:31:29 +09:00
qconf.h kconfig: qconf: remove Y, M, N columns 2020-09-25 00:37:13 +09:00
streamline_config.pl kconfig: streamline_config.pl: Couple of typo fixes 2021-04-14 15:22:49 +09:00
symbol.c kconfig: change defconfig_list option to environment variable 2021-04-14 15:22:48 +09:00
util.c kconfig: convert to SPDX License Identifier 2018-12-28 22:22:28 +09:00