[cff] Sanitize `initialRandomSeed'. * src/cff/cffload.c (cff_load_private_dict): Make `initial_random_seed' value always positive.
diff --git a/ChangeLog b/ChangeLog
index 98f58cc..cb2b776 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2017-02-20 Werner Lemberg <wl@gnu.org>
+ [cff] Sanitize `initialRandomSeed'.
+
+ * src/cff/cffload.c (cff_load_private_dict): Make
+ `initial_random_seed' value always positive.
+
+2017-02-20 Werner Lemberg <wl@gnu.org>
+
[cff] Introduce `random-seed' property (2/2).
* src/base/ftobjs.c: Include `FT_CFF_DRIVER_H'.
diff --git a/src/cff/cffload.c b/src/cff/cffload.c
index 935e612..9122ff9 100644
--- a/src/cff/cffload.c
+++ b/src/cff/cffload.c
@@ -1913,6 +1913,13 @@
/* ensure that `num_blue_values' is even */
priv->num_blue_values &= ~1;
+ /* sanitize `initialRandomSeed' to be a positive value, if necessary; */
+ /* this is not mandated by the specification but by our implementation */
+ if ( priv->initial_random_seed < 0 )
+ priv->initial_random_seed = -priv->initial_random_seed;
+ else if ( priv->initial_random_seed == 0 )
+ priv->initial_random_seed = 987654321;
+
Exit:
/* clean up */
cff_blend_clear( subfont ); /* clear blend stack */