summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2009-04-08 16:33:28 +0200
committerTor Andersson <tor@ghostscript.com>2009-04-08 16:33:28 +0200
commit05882adb4470f3f0c05e1b6df593804cd65f9fa9 (patch)
tree280f7016e9e7db648647158ae695aaede2d4c7cf
parentebcfe7408de48710782ef659a2a5313692388514 (diff)
downloadmupdf-05882adb4470f3f0c05e1b6df593804cd65f9fa9.tar.xz
Resolve the key string/name in the name tree before inserting the object into a dictionary.
-rw-r--r--mupdf/pdf_nametree.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/mupdf/pdf_nametree.c b/mupdf/pdf_nametree.c
index 85a85b09..57292fd4 100644
--- a/mupdf/pdf_nametree.c
+++ b/mupdf/pdf_nametree.c
@@ -31,13 +31,25 @@ loadnametreenode(fz_obj *tree, pdf_xref *xref, fz_obj *node)
{
key = fz_arrayget(names, i * 2 + 0);
val = fz_arrayget(names, i * 2 + 1);
+
+ error = pdf_resolve(&key, xref);
+ if (error)
+ {
+ fz_dropobj(names);
+ fz_dropobj(node);
+ return fz_rethrow(error, "cannot resolve name tree key");
+ }
+
error = fz_dictput(tree, key, val);
if (error)
{
+ fz_dropobj(key);
fz_dropobj(names);
fz_dropobj(node);
return fz_rethrow(error, "cannot insert name tree entry");
}
+
+ fz_dropobj(key);
}
fz_dropobj(names);