Fix infinite loop!
authorBehdad Esfahbod <behdad@behdad.org>
Tue, 12 Oct 2010 16:32:18 +0000 (12:32 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Tue, 12 Oct 2010 16:32:18 +0000 (12:32 -0400)
Untested code is indeed buggy code.

Mozilla bug #603352.

src/hb-ot-tag.c

index 32d455d..c325802 100644 (file)
@@ -630,13 +630,11 @@ hb_ot_tag_from_language (hb_language_t language)
     char tag[4];
     int i;
     lang_str += 6;
-    i = 0;
 #define IS_LETTER(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z'))
 #define TO_UPPER(c) (((c) >= 'a' && (c) <= 'z') ? (c) + 'A' - 'a' : (c))
-    while (i < 4 && IS_LETTER (lang_str[i])) {
+    for (i = 0; i < 4 && IS_LETTER (lang_str[i]); i++)
       tag[i] = TO_UPPER (lang_str[i]);
-    }
-    while (i < 4)
+    for (; i < 4; i++)
       tag[i] = ' ';
     return HB_TAG_STR (tag);
   }