diff --git a/src/hb-glib.cc b/src/hb-glib.cc index 1b322ea50..1fd54e5d2 100644 --- a/src/hb-glib.cc +++ b/src/hb-glib.cc @@ -254,8 +254,10 @@ hb_glib_unicode_compose (hb_unicode_funcs_t *ufuncs HB_UNUSED, len = g_unichar_to_utf8 (a, utf8); len += g_unichar_to_utf8 (b, utf8 + len); normalized = g_utf8_normalize (utf8, len, G_NORMALIZE_NFC); - len = g_utf8_strlen (normalized, -1); + if (unlikely (!len)) + return FALSE; + if (len == 1) { *ab = g_utf8_get_char (normalized); ret = TRUE; @@ -288,8 +290,10 @@ hb_glib_unicode_decompose (hb_unicode_funcs_t *ufuncs HB_UNUSED, len = g_unichar_to_utf8 (ab, utf8); normalized = g_utf8_normalize (utf8, len, G_NORMALIZE_NFD); - len = g_utf8_strlen (normalized, -1); + if (unlikely (!len)) + return FALSE; + if (len == 1) { *a = g_utf8_get_char (normalized); *b = 0;