diff options
author | Vincent Sanders <vince@kyllikki.org> | 2018-01-23 22:53:52 +0000 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2018-01-23 22:53:52 +0000 |
commit | 3fe413e5838eaf9d8bc30a9a49f0d7707e84db35 (patch) | |
tree | e8e7b74339736fe8c03975bd91735869192c0f5b | |
parent | 9f0e9af2eeb08abcaa4991ae4e87440dcba2ada1 (diff) | |
download | libnspdf-3fe413e5838eaf9d8bc30a9a49f0d7707e84db35.tar.gz libnspdf-3fe413e5838eaf9d8bc30a9a49f0d7707e84db35.tar.bz2 |
add dereference error
-rw-r--r-- | include/nspdf/errors.h | 1 | ||||
-rw-r--r-- | src/xref.c | 5 |
2 files changed, 6 insertions, 0 deletions
diff --git a/include/nspdf/errors.h b/include/nspdf/errors.h index 6591dbb..a557b9d 100644 --- a/include/nspdf/errors.h +++ b/include/nspdf/errors.h @@ -25,6 +25,7 @@ typedef enum { NSPDFERROR_NOTFOUND, /**< key not found */ NSPDFERROR_FORMAT, /**< objects do not cornform to expected format */ NSPDFERROR_INCOMPLETE, /**< operation was not completed */ + NSPDFERROR_REFERENCE, /**< unable to dereference object. */ } nspdferror; #endif @@ -160,6 +160,11 @@ nspdf__xref_get_referenced(struct nspdf_doc *doc, struct cos_object **cobj_out) return NSPDFERROR_OK; } + if (doc == NULL) { + /* a reference with no document to dereference against */ + return NSPDFERROR_REFERENCE; + } + entry = doc->xref_table + cobj->u.reference->id; /* check if referenced object is in range and exists. return null object if |