[sfnt] Ensure OTTO fonts have tables (#57285). * src/sfnt/ttload.c (tt_face_load_font_dir): Add test.
diff --git a/ChangeLog b/ChangeLog
index 78bd146..b921853 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2019-11-23 Ben Wagner <bungeman@google.com>
+
+ [sfnt] Ensure OTTO fonts have tables (#57285).
+
+ * src/sfnt/ttload.c (tt_face_load_font_dir): Add test.
+
2019-11-23 Behdad Esfahbod <behdad@behdad.org>
Minor fixes for recent compilers.
diff --git a/src/sfnt/ttload.c b/src/sfnt/ttload.c
index 5443bf4..15b01a8 100644
--- a/src/sfnt/ttload.c
+++ b/src/sfnt/ttload.c
@@ -397,7 +397,15 @@
}
}
else
+ {
valid_entries = sfnt.num_tables;
+ if ( !valid_entries )
+ {
+ FT_TRACE2(( "tt_face_load_font_dir: no valid tables found\n" ));
+ error = FT_THROW( Unknown_File_Format );
+ goto Exit;
+ }
+ }
face->num_tables = valid_entries;
face->format_tag = sfnt.format_tag;