commit - f31903c8acf3479533aa88556b5632ef54159fe3
commit + 162e65e85fe6ac42d796fa3ce4fc19c237777069
blob - d649711646645c3e6fb1a86dac043752e2e4f12a
blob + 0ca63943899675409eb9a1cc3289de56fc925bb9
--- pdf.c
+++ pdf.c
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;
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