commit 66d3ebf6a6e556174947e754cf70df516bcd3eaa
parent 3a5e6f93175b85f7731db86377bc6189990aa6f6
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date: Thu, 2 Feb 2006 22:30:40 +0000
fix potential infinite loop in mbrevstrpbrk()
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3270 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git 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;