poppler/Gfx.cc | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-)
New commits: commit cbd864b74fe368c1172974c7040c67ddfbc52cf6 Author: Albert Astals Cid <aa...@kde.org> Date: Mon Jan 8 23:48:57 2018 +0100 Fix abort in Gfx::opBeginMarkedContent if args[1] is not a name Bug #104468 diff --git a/poppler/Gfx.cc b/poppler/Gfx.cc index ee8f3193..60fc98cc 100644 --- a/poppler/Gfx.cc +++ b/poppler/Gfx.cc @@ -5025,18 +5025,19 @@ void Gfx::opBeginMarkedContent(Object args[], int numArgs) { char* name0 = args[0].getName(); if ( strncmp( name0, "OC", 2) == 0 && contentConfig) { if ( numArgs >= 2 ) { - if (!args[1].isName()) { - error(errSyntaxError, getPos(), "Unexpected MC Type: {0:d}", args[1].getType()); - } - char* name1 = args[1].getName(); - MarkedContentStack *mc = mcStack; - mc->kind = gfxMCOptionalContent; - Object markedContent = res->lookupMarkedContentNF( name1 ); - if (!markedContent.isNull()) { - bool visible = contentConfig->optContentIsVisible(&markedContent); - mc->ocSuppressed = !(visible); + if (args[1].isName()) { + char* name1 = args[1].getName(); + MarkedContentStack *mc = mcStack; + mc->kind = gfxMCOptionalContent; + Object markedContent = res->lookupMarkedContentNF( name1 ); + if (!markedContent.isNull()) { + bool visible = contentConfig->optContentIsVisible(&markedContent); + mc->ocSuppressed = !(visible); + } else { + error(errSyntaxError, getPos(), "DID NOT find {0:s}", name1); + } } else { - error(errSyntaxError, getPos(), "DID NOT find {0:s}", name1); + error(errSyntaxError, getPos(), "Unexpected MC Type: {0:d}", args[1].getType()); } } else { error(errSyntaxError, getPos(), "insufficient arguments for Marked Content"); _______________________________________________ poppler mailing list poppler@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/poppler