github PR #1259 - counts in curses menus
Pull request from mkuoppal: curses menu handling could go out of bounds accessing array groupaccels[] if strange input gave a false positive for STDC's isdigit(). Discovered by debug fuzzer. Failure was triggering an error by the undefined behavior sanitizer. [randomkey() ought to return int rather than char.] Closes #1259
This commit is contained in:
@@ -1555,7 +1555,8 @@ menu_get_selections(WINDOW *win, nhmenu *menu, int how)
|
|||||||
}
|
}
|
||||||
/*FALLTHRU*/
|
/*FALLTHRU*/
|
||||||
default:
|
default:
|
||||||
if (isdigit(curletter) && !selectors[curletter]
|
if (curletter > 0 && curletter < 256
|
||||||
|
&& isdigit(curletter) && !selectors[curletter]
|
||||||
&& !groupaccels[curletter]) {
|
&& !groupaccels[curletter]) {
|
||||||
count = curses_get_count(curletter);
|
count = curses_get_count(curletter);
|
||||||
/* after count, we know some non-digit is already pending */
|
/* after count, we know some non-digit is already pending */
|
||||||
|
|||||||
Reference in New Issue
Block a user