summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Liddell <chris.liddell@artifex.com>2015-03-19 13:50:07 +0000
committerChris Liddell <chris.liddell@artifex.com>2015-03-19 13:56:04 +0000
commita463733e35e1070a06029657dedb67148c33c87a (patch)
treef0a77504bddbb491535807cbfe9d9890d7589170
parent68f1390c29df09d2cc7cdb5c815c71aaa77f667c (diff)
downloadghostpdl-a463733e35e1070a06029657dedb67148c33c87a.tar.gz
Handle an invalid cidfmap entry in the CIDFont subst code
Certain types of invalid entry in the cidfmap can mean that resourcestatus returns "true" but a subsequent "findresource" will fail. There is already validation code to strip out invalid entries, but as an extra safety measure, call the findresource in a stopped context, so we can recover, and continue with the next substitution fallback stage. No cluster differences.
-rw-r--r--gs/Resource/Init/pdf_font.ps3
1 files changed, 2 insertions, 1 deletions
diff --git a/gs/Resource/Init/pdf_font.ps b/gs/Resource/Init/pdf_font.ps
index 383730e4b..fb6172d4c 100644
--- a/gs/Resource/Init/pdf_font.ps
+++ b/gs/Resource/Init/pdf_font.ps
@@ -1728,7 +1728,8 @@ currentdict /CMap_read_dict undef
} if
exch pop
dup /CIDFont resourcestatus {
- pop pop /CIDFont findresource exit
+ pop pop /CIDFont { findresource } stopped
+ {pop}{exit} ifelse
} if
QUIET not {
(The substitute CID font ") print dup =string cvs print