Browse Source

cm_utf8: Fail on empty input range

Issue: #23132
Brad King 3 years ago
parent
commit
0bd6009a0c
1 changed files with 5 additions and 0 deletions
  1. 5 0
      Source/cm_utf8.c

+ 5 - 0
Source/cm_utf8.c

@@ -42,6 +42,11 @@ static unsigned int const cm_utf8_min[7] = {
 const char* cm_utf8_decode_character(const char* first, const char* last,
                                      unsigned int* pc)
 {
+  /* We need at least one byte.  */
+  if (first == last) {
+    return 0;
+  }
+
   /* Count leading ones in the first byte.  */
   unsigned char c = (unsigned char)*first++;
   unsigned char const ones = cm_utf8_ones[c];