From: David Lawrence Ramsey Date: Thu, 2 Feb 2006 22:30:40 +0000 (+0000) Subject: fix potential infinite loop in mbrevstrpbrk() X-Git-Tag: v1.3.11~59 X-Git-Url: https://git.wh0rd.org/?a=commitdiff_plain;h=66d3ebf6a6e556174947e754cf70df516bcd3eaa;p=nano.git fix potential infinite loop in mbrevstrpbrk() git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3270 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- diff --git a/src/chars.c b/src/chars.c index bfdaaf62..41eaa11f 100644 --- a/src/chars.c +++ b/src/chars.c @@ -910,14 +910,19 @@ char *mbrevstrpbrk(const char *s, const char *accept, const char #ifdef ENABLE_UTF8 if (ISSET(USE_UTF8)) { - while (rev_start >= s) { + bool begin_line = FALSE; + + while (!begin_line) { const char *q = (*rev_start == '\0') ? NULL : mbstrchr(accept, rev_start); if (q != NULL) return (char *)rev_start; - rev_start = s + move_mbleft(s, rev_start - s); + if (rev_start == s) + begin_line = TRUE; + else + rev_start = s + move_mbleft(s, rev_start - s); } return NULL;