1
1

input: do not crash if sctofunc() returns NULL

This fixes a regression introduced by commit 54103d8e: a crash that
can be triggered by running 'nano --restrict' and pressing <Insert>.

This addresses https://bugzilla.redhat.com/1558532.
Этот коммит содержится в:
Kamil Dudka 2018-03-20 16:49:34 +01:00 коммит произвёл Benno Schulenberg
родитель 3e5b0ea5fd
Коммит b830a7dd38

Просмотреть файл

@ -1727,9 +1727,12 @@ int do_input(bool allow_funcs)
if (shortcut == NULL) if (shortcut == NULL)
pletion_line = NULL; pletion_line = NULL;
else { else {
if (ISSET(VIEW_MODE) && !sctofunc(shortcut)->viewok) { if (ISSET(VIEW_MODE)) {
print_view_warning(); const subnfunc *f = sctofunc(shortcut);
return ERR; if (f && !f->viewok) {
print_view_warning();
return ERR;
}
} }
/* If the function associated with this shortcut is /* If the function associated with this shortcut is
@ -1801,8 +1804,11 @@ int do_input(bool allow_funcs)
wrap_reset(); wrap_reset();
#endif #endif
#ifdef ENABLE_COLOR #ifdef ENABLE_COLOR
if (!refresh_needed && !sctofunc(shortcut)->viewok) if (!refresh_needed) {
check_the_multis(openfile->current); const subnfunc *f = sctofunc(shortcut);
if (f && !f->viewok)
check_the_multis(openfile->current);
}
#endif #endif
if (!refresh_needed && (shortcut->func == do_delete || if (!refresh_needed && (shortcut->func == do_delete ||
shortcut->func == do_backspace)) shortcut->func == do_backspace))