Commit ca0111289498f3f6ce28b3d78ff5a54ccdfd2d47

Alexei Podtelezhnikov 2022-01-08T22:28:44

[sfnt] Fix off-by-one error. The 0-base index is equal to the number of previosly parsed entries. It is an error to adjust it by one to get the number truncated by a stream error. This is probably inconsequential because valid entries are correctly accounted for. * src/sfnt/ttload.c (check_table_dir): Do not adjust the truncated number of tables.

1
2
3
4
5
6
7
8
9
10
11
12
diff --git a/src/sfnt/ttload.c b/src/sfnt/ttload.c
index 51416d8..97e47f8 100644
--- a/src/sfnt/ttload.c
+++ b/src/sfnt/ttload.c
@@ -205,7 +205,6 @@
 
       if ( FT_STREAM_READ_FIELDS( table_dir_entry_fields, &table ) )
       {
-        nn--;
         FT_TRACE2(( "check_table_dir:"
                     " can read only %d table%s in font (instead of %d)\n",
                     nn, nn == 1 ? "" : "s", sfnt->num_tables ));