From: Sami Kerola Date: Tue, 27 Jan 2015 22:28:57 +0000 (+0000) Subject: more: fix repeat search crash X-Git-Tag: v2.26-rc2~65 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bc1ed338814f69473629b04c5e9efae5d7db3b72;p=thirdparty%2Futil-linux.git more: fix repeat search crash Repeating a search for a pattern that did not found made more(1) to crash. To reproduce 'more /etc/services' and search for 'doom'; you will find a service in port 666 - pressing '.' after that result used to cause core dump. Signed-off-by: Sami Kerola --- diff --git a/text-utils/more.c b/text-utils/more.c index 74148a7abb..94b0455069 100644 --- a/text-utils/more.c +++ b/text-utils/more.c @@ -1605,6 +1605,8 @@ void search(char buf[], FILE *file, register int n) context.line = saveln = Currline; context.chrctr = startline; lncount = 0; + if (!buf) + goto notfound; if ((rc = regcomp(&re, buf, REG_NOSUB)) != 0) { char s[REGERR_BUF]; regerror(rc, &re, s, sizeof s); @@ -1661,6 +1663,7 @@ void search(char buf[], FILE *file, register int n) } free(previousre); previousre = NULL; +notfound: more_error(_("Pattern not found")); } }