diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2016-11-18 13:02:01 +0100 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2016-11-21 11:11:46 +0100 |
commit | bff572a7365209f36a16951296384974c80ad3d5 (patch) | |
tree | 7d63479831c8edc24bc5933a1ef61c376a8dd6b2 /source/pdf/pdf-outline.c | |
parent | ac6ebbe38e6edb6074b1b73707770a9a4e9979b8 (diff) | |
download | mupdf-bff572a7365209f36a16951296384974c80ad3d5.tar.xz |
Harden viewers against failures when loading outlines.
Ignore invalid page references in outlines.
This was shown by a file that had [null 0 0 1] as a link dest.
Attempting to parse that threw an error, which caused the whole
outline load to fail.
Diffstat (limited to 'source/pdf/pdf-outline.c')
-rw-r--r-- | source/pdf/pdf-outline.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/source/pdf/pdf-outline.c b/source/pdf/pdf-outline.c index 7db65153..c31a1954 100644 --- a/source/pdf/pdf-outline.c +++ b/source/pdf/pdf-outline.c @@ -33,7 +33,10 @@ pdf_load_outline_imp(fz_context *ctx, pdf_document *doc, pdf_obj *dict) else node->uri = NULL; - node->page = pdf_resolve_link(ctx, doc, node->uri, NULL, NULL); + if (node->uri) + node->page = pdf_resolve_link(ctx, doc, node->uri, NULL, NULL); + else + node->page = -1; obj = pdf_dict_get(ctx, dict, PDF_NAME_First); if (obj) |