aboutsummaryrefslogtreecommitdiff
path: root/jimregexp.c
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2011-12-07 18:05:57 +1000
committerSteve Bennett <steveb@workware.net.au>2011-12-08 11:15:39 +1000
commit073f7ec76c8a3836d7706d2b57df6efa6966fa39 (patch)
tree2cad8332b28df4cbdf25f1d0386c7425bcf16d97 /jimregexp.c
parent3542b58ddb8f84d9a0453b95f9ad2293eb21f5c7 (diff)
downloadjimtcl-073f7ec76c8a3836d7706d2b57df6efa6966fa39.zip
jimtcl-073f7ec76c8a3836d7706d2b57df6efa6966fa39.tar.gz
jimtcl-073f7ec76c8a3836d7706d2b57df6efa6966fa39.tar.bz2
Fix a regexp infinite loop on bad utf-8 input
regsub {\mdnl\M.*$} "word \xA9 another word" "" line Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jimregexp.c')
-rw-r--r--jimregexp.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/jimregexp.c b/jimregexp.c
index e904db8..2f57caf 100644
--- a/jimregexp.c
+++ b/jimregexp.c
@@ -1132,7 +1132,10 @@ nextline:
if (*s == '\0') {
break;
}
- s += utf8_charlen(*s);
+ else {
+ int c;
+ s += utf8_tounicode(s, &c);
+ }
}
/* Failure. */