From b830a7dd384495fb9b882f866b26948025abe136 Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Tue, 20 Mar 2018 16:49:34 +0100 Subject: [PATCH] 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 . This addresses https://bugzilla.redhat.com/1558532. --- src/nano.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/nano.c b/src/nano.c index 260784ce..678dc987 100644 --- a/src/nano.c +++ b/src/nano.c @@ -1727,9 +1727,12 @@ int do_input(bool allow_funcs) if (shortcut == NULL) pletion_line = NULL; else { - if (ISSET(VIEW_MODE) && !sctofunc(shortcut)->viewok) { - print_view_warning(); - return ERR; + if (ISSET(VIEW_MODE)) { + const subnfunc *f = sctofunc(shortcut); + if (f && !f->viewok) { + print_view_warning(); + return ERR; + } } /* If the function associated with this shortcut is @@ -1801,8 +1804,11 @@ int do_input(bool allow_funcs) wrap_reset(); #endif #ifdef ENABLE_COLOR - if (!refresh_needed && !sctofunc(shortcut)->viewok) - check_the_multis(openfile->current); + if (!refresh_needed) { + const subnfunc *f = sctofunc(shortcut); + if (f && !f->viewok) + check_the_multis(openfile->current); + } #endif if (!refresh_needed && (shortcut->func == do_delete || shortcut->func == do_backspace))