Commit 85167dbd508c95cc923d36c0be8a602991c6e43a

Ben Wagner 2023-07-13T16:49:34

[woff2] Remove sfnt size guess check In WOFF the `totalSfntSize` must be correct, however in WOFF2 this value is now just a hint and a conforming implementation must not reject otherwise valid data if the `totalSfntSize` turns out not to be exact. * src/sfnt/sfwoff2.c (woff2_open_font): remove check that uncompressed woff2 data would fit in the sfnt size guess. Fixes: #1235

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
diff --git a/src/sfnt/sfwoff2.c b/src/sfnt/sfwoff2.c
index 49ad5cc..fecae27 100644
--- a/src/sfnt/sfwoff2.c
+++ b/src/sfnt/sfwoff2.c
@@ -2257,13 +2257,6 @@
       goto Exit;
     }
 
-    if ( woff2.uncompressed_size > sfnt_size )
-    {
-      FT_ERROR(( "woff2_open_font: SFNT table lengths are too large.\n" ));
-      error = FT_THROW( Invalid_Table );
-      goto Exit;
-    }
-
     /* Allocate memory for uncompressed table data. */
     if ( FT_QALLOC( uncompressed_buf, woff2.uncompressed_size ) ||
          FT_FRAME_ENTER( woff2.totalCompressedSize )            )