Commit 66d3ebf6 authored by David Lawrence Ramsey's avatar David Lawrence Ramsey
Browse files

fix potential infinite loop in mbrevstrpbrk()

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3270 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
No related merge requests found
Showing with 7 additions and 2 deletions
+7 -2
...@@ -910,14 +910,19 @@ char *mbrevstrpbrk(const char *s, const char *accept, const char ...@@ -910,14 +910,19 @@ char *mbrevstrpbrk(const char *s, const char *accept, const char
#ifdef ENABLE_UTF8 #ifdef ENABLE_UTF8
if (ISSET(USE_UTF8)) { if (ISSET(USE_UTF8)) {
while (rev_start >= s) { bool begin_line = FALSE;
while (!begin_line) {
const char *q = (*rev_start == '\0') ? NULL : const char *q = (*rev_start == '\0') ? NULL :
mbstrchr(accept, rev_start); mbstrchr(accept, rev_start);
if (q != NULL) if (q != NULL)
return (char *)rev_start; 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; return NULL;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment