From 7bdc1d598d02f2fe87caaec68737added4965707 Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Fri, 18 Dec 2009 07:13:22 +0100 Subject: [PATCH] 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. --- ChangeLog | 12 ++++++++++++ src/cff/cffparse.c | 4 +++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index b29306fe9..a0a9d9af8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2009-12-18 Werner Lemberg + + 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 Really fix compiler warnings. diff --git a/src/cff/cffparse.c b/src/cff/cffparse.c index 947ec9d34..01266a193 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;