Fix Savannah bug #28320. There exist corrupt, subsetted fonts (embedded in PDF files) which contain a private dict that ends with an unterminated floating point number (no operator following). We now ignore this error (as acrobat does). * src/cff/cffparse.c (cff_parser_run): Don't emit a syntax error for unterminated floating point numbers.
diff --git a/ChangeLog b/ChangeLog
index b29306f..a0a9d9a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2009-12-18 Werner Lemberg <wl@gnu.org>
+
+ Fix Savannah bug #28320.
+
+ There exist corrupt, subsetted fonts (embedded in PDF files) which
+ contain a private dict that ends with an unterminated floating point
+ number (no operator following). We now ignore this error (as
+ acrobat does).
+
+ * src/cff/cffparse.c (cff_parser_run): Don't emit a syntax error for
+ unterminated floating point numbers.
+
2009-12-16 Werner Lemberg <wl@gnu.org>
Really fix compiler warnings.
diff --git a/src/cff/cffparse.c b/src/cff/cffparse.c
index 947ec9d..01266a1 100644
--- a/src/cff/cffparse.c
+++ b/src/cff/cffparse.c
@@ -745,8 +745,10 @@
p++;
for (;;)
{
+ /* An unterminated floating point number at the */
+ /* end of a dictionary is invalid but harmless. */
if ( p >= limit )
- goto Syntax_Error;
+ goto Exit;
v = p[0] >> 4;
if ( v == 15 )
break;