summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2011-02-01 07:36:27 +0100
committerWerner Lemberg <wl@gnu.org>2011-02-01 07:36:27 +0100
commit75df70600f9ce424264da64eb3fd8d79ce2f1b98 (patch)
treecb2097377f3e83986d4309bcb58eeaabdbbb65ca
parent18931a5a5dacf1a0bb2c54eed2bf4c607245f893 (diff)
[cff] Ignore unknown operators in charstrings.
Patch suggested by Miles.Lau <sunliang_liu@foxitsoftware.com>. * src/cff/cffgload.c (cff_decoder_parse_charstrings): Emit tracing message for unknown operators and continue instead of exiting with a syntax error.
-rw-r--r--ChangeLog9
-rw-r--r--src/cff/cffgload.c10
2 files changed, 14 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index b9c75b3b..33804022 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
2011-02-01 Werner Lemberg <wl@gnu.org>
+ [cff] Ignore unknown operators in charstrings.
+ Patch suggested by Miles.Lau <sunliang_liu@foxitsoftware.com>.
+
+ * src/cff/cffgload.c (cff_decoder_parse_charstrings): Emit tracing
+ message for unknown operators and continue instead of exiting with a
+ syntax error.
+
+2011-02-01 Werner Lemberg <wl@gnu.org>
+
[truetype] FT_LOAD_PEDANTIC now affects `prep' and `fpgm' also.
* src/truetype/ttgload.c (tt_loader_init): Handle
diff --git a/src/cff/cffgload.c b/src/cff/cffgload.c
index 99c5b0cf..78159ac3 100644
--- a/src/cff/cffgload.c
+++ b/src/cff/cffgload.c
@@ -4,8 +4,7 @@
/* */
/* OpenType Glyph Loader (body). */
/* */
-/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, */
-/* 2010 by */
+/* Copyright 1996-2011 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -1159,8 +1158,8 @@
op = cff_op_flex1;
break;
default:
- /* decrement ip for syntax error message */
- ip--;
+ FT_TRACE4(( " unknown op (12, %d)\n", v ));
+ break;
}
}
break;
@@ -1213,11 +1212,12 @@
op = cff_op_hvcurveto;
break;
default:
+ FT_TRACE4(( " unknown op (%d)\n", v ));
break;
}
if ( op == cff_op_unknown )
- goto Syntax_Error;
+ continue;
/* check arguments */
req_args = cff_argument_counts[op];