diff --git a/pdf.c b/pdf.c index 6ea78eb8fef497e24448ba51fd8d32bacc012233..3197c2034b3ab15972b352f9a06776bba478c477 100644 --- a/pdf.c +++ b/pdf.c @@ -1653,7 +1653,17 @@ act_ks_value(const HParseResult *p, void *u) /* decode and parse the stream data */ res = decode_stream(spec->dict, bytes, spec->parser); - assert(res != NULL); // XXX parse failure! + if (res == NULL) { + HBytes b = {NULL, 0}; + const HParsedToken *v = dictentry(spec->dict, "Type"); + if (v != NULL && v->token_type == TT_BYTES) + b = v->bytes; + if (b.len > INT_MAX) + b.len = INT_MAX; + fprintf(stderr, "parse error in stream (%*s)\n", + (int)b.len, b.token); + // XXX return the undecoded stream (p->ast)? + } return H_MAKE(HParseResult, res); }