Fix Savannah bug #41697, part 1. * src/cff/cf2hints.c (cf2_hintmap_build): Return when `hintMask' is invalid. In this case, it is not safe to use the length of `hStemHintArray'; the exception has already been recorded in `hintMask'.
diff --git a/ChangeLog b/ChangeLog
index 2010fda..1f48e24 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2014-02-28 Dave Arnold <darnold@adobe.com>
+
+ [cff] Fix Savannah bug #41697, part 1.
+
+ * src/cff/cf2hints.c (cf2_hintmap_build): Return when `hintMask' is
+ invalid. In this case, it is not safe to use the length of
+ `hStemHintArray'; the exception has already been recorded in
+ `hintMask'.
+
2014-02-26 Werner Lemberg <wl@gnu.org>
[sfnt] Fix Savannah bug #41696.
diff --git a/src/cff/cf2hints.c b/src/cff/cf2hints.c
index 5f44161..79f84fc 100644
--- a/src/cff/cf2hints.c
+++ b/src/cff/cf2hints.c
@@ -781,6 +781,8 @@
cf2_hintmask_setAll( hintMask,
cf2_arrstack_size( hStemHintArray ) +
cf2_arrstack_size( vStemHintArray ) );
+ if ( !cf2_hintmask_isValid( hintMask ) )
+ return; /* too many stem hints */
}
/* begin by clearing the map */