commit 162e65e85fe6ac42d796fa3ce4fc19c237777069 from: Pompolic date: Wed May 20 15:17:42 2020 UTC Merge branch 'xref-crash-fix-issue-9' commit - f31903c8acf3479533aa88556b5632ef54159fe3 commit + 162e65e85fe6ac42d796fa3ce4fc19c237777069 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"); blob - /dev/null blob + b2100bf804dc3e4f0edd0a27739ef0c778b4e391 (mode 644) Binary files /dev/null and t/missing_xref_crash_regr.pdf differ