commit 27f1f2c2ab804f56b2ae8adcc94e4b78896381aa from: Pompolic date: Wed Apr 29 16:03:20 2020 UTC Crash fix for !9 commit - 17c6bcc389f815a32eb7f3885f4241e37ff32678 commit + 27f1f2c2ab804f56b2ae8adcc94e4b78896381aa blob - d649711646645c3e6fb1a86dac043752e2e4f12a blob + 0ca63943899675409eb9a1cc3289de56fc925bb9 --- pdf.c +++ 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");