]> granicus.if.org Git - libass/commitdiff
fontselect: add overflow check
authorRodger Combs <rodger.combs@gmail.com>
Sat, 23 Mar 2019 13:30:32 +0000 (08:30 -0500)
committerOleg Oshmyan <chortos@inbox.lv>
Thu, 26 Sep 2019 13:51:09 +0000 (16:51 +0300)
libass/ass_fontselect.c

index 9c4bb3bba018a705a8537df83cdfb7f57058948c..e9748de05810dc363e5804a88c8dad0c52b4f7d0 100644 (file)
@@ -786,14 +786,14 @@ get_font_info(FT_Library lib, FT_Face face, ASS_FontProviderMetaData *info)
             ass_utf16be_to_utf8(buf, sizeof(buf), (uint8_t *)name.string,
                                 name.string_len);
 
-            if (name.name_id == TT_NAME_ID_FULL_NAME) {
+            if (name.name_id == TT_NAME_ID_FULL_NAME && num_fullname < MAX_FULLNAME) {
                 fullnames[num_fullname] = strdup(buf);
                 if (fullnames[num_fullname] == NULL)
                     goto error;
                 num_fullname++;
             }
 
-            if (name.name_id == TT_NAME_ID_FONT_FAMILY) {
+            if (name.name_id == TT_NAME_ID_FONT_FAMILY && num_family < MAX_FULLNAME) {
                 families[num_family] = strdup(buf);
                 if (families[num_family] == NULL)
                     goto error;