changeset 7157:0c1d5a814368 HEAD

uni_utf8_get_valid_data(): Check for invalid UTF-8 better.
author Timo Sirainen <tss@iki.fi>
date Mon, 14 Jan 2008 06:44:38 +0200
parents 5dda06c19eb1
children f41bd3065ec8
files src/lib/unichar.c
diffstat 1 files changed, 4 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib/unichar.c	Sat Jan 12 11:47:12 2008 +0200
+++ b/src/lib/unichar.c	Mon Jan 14 06:44:38 2008 +0200
@@ -295,11 +295,12 @@
 	size_t i, len;
 
 	len = uni_utf8_char_bytes(input[0]);
-	if (unlikely(len > size))
+	if (unlikely(len > size || len == 1))
 		return 0;
 
-	for (i = 0; i < len; i++) {
-		if (unlikely(uni_utf8_char_bytes(input[i]) != len-i))
+	for (i = 1; i < len; i++) {
+		if (unlikely(uni_utf8_char_bytes(input[i]) != len-i ||
+			     input[i] < 192-2))
 			return 0;
 	}
 	return len;