summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pdf/pdf_repair.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/pdf/pdf_repair.c b/pdf/pdf_repair.c
index 08adcb99..dc376dc3 100644
--- a/pdf/pdf_repair.c
+++ b/pdf/pdf_repair.c
@@ -36,7 +36,10 @@ pdf_repair_obj(fz_stream *file, char *buf, int cap, int *stmofsp, int *stmlenp,
/* Send NULL xref so we don't try to resolve references */
error = pdf_parse_dict(&dict, NULL, file, buf, cap);
if (error)
- return fz_rethrow(error, "cannot parse object");
+ {
+ fz_catch(error, "cannot parse object - repair will be incomplete");
+ dict = fz_new_dict(2);
+ }
obj = fz_dict_gets(dict, "Type");
if (fz_is_name(obj) && !strcmp(fz_to_name(obj), "XRef"))