From: Kevin McCarthy Date: Sun, 6 Aug 2017 17:22:45 +0000 (-0700) Subject: Handle error if REGCOMP in pager fails when resizing. X-Git-Tag: mutt-1-9-rel~24 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e76cd1be5730ca8d294f03a1914d3c7cda55cdc3;p=mutt Handle error if REGCOMP in pager fails when resizing. Thanks to JiaZhouyang for finding this issue and supplying the original patch. --- diff --git a/pager.c b/pager.c index f8333146..34b9c1fe 100644 --- a/pager.c +++ b/pager.c @@ -1630,7 +1630,7 @@ typedef struct static void pager_menu_redraw (MUTTMENU *pager_menu) { pager_redraw_data_t *rd = pager_menu->redraw_data; - int i, j; + int i, j, err; char buffer[LONG_STRING]; if (!rd) @@ -1697,10 +1697,18 @@ static void pager_menu_redraw (MUTTMENU *pager_menu) { if ((rd->SearchCompiled = Resize->SearchCompiled)) { - REGCOMP - (&rd->SearchRE, rd->searchbuf, REG_NEWLINE | mutt_which_case (rd->searchbuf)); - rd->SearchFlag = MUTT_SEARCH; - rd->SearchBack = Resize->SearchBack; + if ((err = REGCOMP (&rd->SearchRE, rd->searchbuf, + REG_NEWLINE | mutt_which_case (rd->searchbuf))) != 0) + { + regerror (err, &rd->SearchRE, buffer, sizeof (buffer)); + mutt_error ("%s", buffer); + rd->SearchCompiled = 0; + } + else + { + rd->SearchFlag = MUTT_SEARCH; + rd->SearchBack = Resize->SearchBack; + } } rd->lines = Resize->line; pager_menu->redraw |= REDRAW_FLOW;