--- html.c.old 2009-10-05 12:38:12.000000000 +0900
+++ html.c.new 2009-10-09 02:46:23.000000000 +0900
@@ -648,8 +648,13 @@
MB_WRITE(next_char);
this_char |= next_char;
pos++;
+ } else {
+ *status = FAILURE;
}
-
+ } else if (!(this_char >= 0x00 && this_char <= 0x7f) &&
+ !(this_char >= 0xa1 && this_char <= 0xdf))
+ {
+ *status = FAILURE;
}
break;
}
@@ -666,8 +671,9 @@
MB_WRITE(next_char);
this_char |= next_char;
pos++;
+ } else {
+ *status = FAILURE;
}
-
} else if (this_char == 0x8e) {
/* peek at the next char */
CHECK_LEN(pos, 1);
@@ -678,8 +684,9 @@
MB_WRITE(next_char);
this_char |= next_char;
pos++;
+ } else {
+ *status = FAILURE;
}
-
} else if (this_char == 0x8f) {
/* peek at the next two char */
unsigned char next2_char;
@@ -697,8 +704,11 @@
MB_WRITE(next2_char);
this_char |= next2_char;
pos++;
+ } else {
+ *status = FAILURE;
}
-
+ } else if (!(this_char >= 0x00 && this_char <= 0x7f)) {
+ *status = FAILURE;
}
break;
}