From 27f1f2c2ab804f56b2ae8adcc94e4b78896381aa Mon Sep 17 00:00:00 2001 From: Pompolic <pompolic@special-circumstanc.es> Date: Wed, 29 Apr 2020 18:03:20 +0200 Subject: [PATCH] Crash fix for !9 --- pdf.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/pdf.c b/pdf.c index d649711..0ca6394 100644 --- a/pdf.c +++ b/pdf.c @@ -741,7 +741,7 @@ act_xrstm(const HParseResult *p, void *u) dict = H_INDEX_TOKEN(p->ast, 1, 0); res = H_FIELD(HParseResult, 1, 1); // XXX free this - xrefs = res->ast; + xrefs = res ? res->ast : NULL; tok = H_MAKE_SEQN(2); tok->seq->elements[0] = (HParsedToken *)xrefs; @@ -758,9 +758,16 @@ act_xrstm(const HParseResult *p, void *u) bool validate_xrstm(HParseResult *p, void *u) { + const HParsedToken *xrefs = H_INDEX_TOKEN(p->ast, 1, 1); const Dict *tdict = H_FIELD(Dict, 1, 0); const HParsedToken *v = dictentry(tdict, "Type"); + if (!xrefs) + { + fprintf(stderr, "XRef table missing or corrupt!"); + return false; + } + #if 0 if (v == NULL) fprintf(stderr, "stream dict has no /Type\n"); -- GitLab