kconfig/nconf: Fix hang when editing symbol with a long prompt
authorBen Hutchings <ben.hutchings@codethink.co.uk>
Thu, 24 Nov 2016 22:10:23 +0000 (22:10 +0000)
committerBen Hutchings <ben@decadent.org.uk>
Thu, 16 Mar 2017 02:18:30 +0000 (02:18 +0000)
commit1af5e763960296c76705a20b52777de65abe2e9e
tree14102a88c46972c6c12fc29cac53c34e12965927
parent8e905a3924e225f6037cfa3420e9cdfd880adb85
kconfig/nconf: Fix hang when editing symbol with a long prompt

commit 79e51b5c2deea542b3bb8c66e0d502230b017dde upstream.

Currently it is impossible to edit the value of a config symbol with a
prompt longer than (terminal width - 2) characters.  dialog_inputbox()
calculates a negative x-offset for the input window and newwin() fails
as this is invalid.  It also doesn't check for this failure, so it
busy-loops calling wgetch(NULL) which immediately returns -1.

The additions in the offset calculations also don't match the intended
size of the window.

Limit the window size and calculate the offset similarly to
show_scroll_win().

Fixes: 692d97c380c6 ("kconfig: new configuration interface (nconfig)")
Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
[bwh: Backported to 3.2: replaced code used LINES and COLS]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
scripts/kconfig/nconf.gui.c