Commit 339c451ad0e8a743b59fb2bd0589fe9362b45024

Shailesh Mistry 2018-11-02T10:10:10

[autofit] Prevent SEGV. See https://bugs.ghostscript.com/show_bug.cgi?id=697545 for more details on how the bug was found. * src/autofit/afloader.c (af_loader_load_glyph): Propagate error code.

diff --git a/ChangeLog b/ChangeLog
index 40eb273..9ac8395 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2018-11-02  Shailesh Mistry  <shailesh.mistry@hotmail.co.uk>
+
+	[autofit] Prevent SEGV.
+
+	See
+
+	  https://bugs.ghostscript.com/show_bug.cgi?id=697545
+
+	for more details on how the bug was found.
+
+	* src/autofit/afloader.c (af_loader_load_glyph): Propagate error
+	code.
+
 2018-10-31  Alexei Podtelezhnikov <apodtele@gmail.com>
 
 	[truetype] Speed up variation IUP.
diff --git a/src/autofit/afloader.c b/src/autofit/afloader.c
index 301f377..406940b 100644
--- a/src/autofit/afloader.c
+++ b/src/autofit/afloader.c
@@ -421,10 +421,15 @@
       /* now load the slot image into the auto-outline */
       /* and run the automatic hinting process         */
       if ( writing_system_class->style_hints_apply )
-        writing_system_class->style_hints_apply( glyph_index,
-                                                 hints,
-                                                 &gloader->base.outline,
-                                                 style_metrics );
+      {
+        error = writing_system_class->style_hints_apply(
+                  glyph_index,
+                  hints,
+                  &gloader->base.outline,
+                  style_metrics );
+        if ( error )
+          goto Exit;
+      }
 
       /* we now need to adjust the metrics according to the change in */
       /* width/positioning that occurred during the hinting process   */