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*/
|
||||
default:
|
||||
if (isdigit(curletter) && !selectors[curletter]
|
||||
if (curletter > 0 && curletter < 256
|
||||
&& isdigit(curletter) && !selectors[curletter]
|
||||
&& !groupaccels[curletter]) {
|
||||
count = curses_get_count(curletter);
|
||||
/* after count, we know some non-digit is already pending */
|
||||
|
||||
Reference in New Issue
Block a user