[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 */