shithub: freetype+ttf2subf

Download patch

ref: c6c2c0b574c6a8b6f0a780516f96b1a98af8492e
parent: fc65d45a62e1ffec6010cd17f22cfe59668e5592
author: Nikhil Ramakrishnan <[email protected]>
date: Sun Jun 30 15:32:27 EDT 2019

[woff2] Minor.

* src/sfnt/sfwoff2.c (woff2_uncompress): Add error message
(woff2_open_font): Free `uncompressed_buf'.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2019-08-27  Nikhil Ramakrishnan  <[email protected]>
 
+	[woff2] Minor.
+
+	* src/sfnt/sfwoff2.c (woff2_uncompress): Add error message
+	(woff2_open_font): Free `uncompressed_buf'.
+
+2019-08-27  Nikhil Ramakrishnan  <[email protected]>
+
 	[woff2] Uncompress Brotli streams and `face_index' support.
 
 	WOFF2 compressed stream is now uncompressed if Brotli is available.
--- a/src/sfnt/sfwoff2.c
+++ b/src/sfnt/sfwoff2.c
@@ -219,7 +219,10 @@
 
     if( result != BROTLI_DECODER_RESULT_SUCCESS ||
         uncompressed_size != dst_size )
+      {
+        FT_ERROR(( "woff2_uncompress: Stream length mismatch.\n" ));
         return FT_THROW( Invalid_Table );
+      }
 
     return FT_Err_Ok;
 
@@ -498,7 +501,6 @@
       }
       /* Collection directory reading complete. */
       FT_TRACE2(( "WOFF2 collection dirtectory is valid.\n" ));
-
     }
 
     first_table_offset = compute_first_table_offset( &woff2 );
@@ -506,7 +508,7 @@
 
     woff2.compressed_offset = FT_STREAM_POS();
     file_offset = ROUND4( woff2.compressed_offset +
-                            woff2.totalCompressedSize );
+                          woff2.totalCompressedSize );
 
     /* Few more checks before we start reading the tables. */
     if( file_offset > woff2.length )
@@ -619,6 +621,7 @@
   Exit:
     FT_FREE( tables );
     FT_FREE( indices );
+    FT_FREE( uncompressed_buf );
 
     if( error )
     {