]> git.baikalelectronics.ru Git - kernel.git/commit
kconfig: nconf: fix core dump when searching in empty menu
authorMasahiro Yamada <masahiroy@kernel.org>
Sat, 10 Apr 2021 06:52:46 +0000 (15:52 +0900)
committerMasahiro Yamada <masahiroy@kernel.org>
Wed, 14 Apr 2021 06:22:49 +0000 (15:22 +0900)
commita41a9a2015933fbb684d1dc839e97c3d5f9a0bcd
tree9418420df518d6765a747a975abc23c4c8d8fa8b
parent2cca1cf72f378e4828b1fd2c1c338a21ed47a823
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>
scripts/kconfig/nconf.c