From 8b1e307741d52a0c401296eaf790b18f98d67b6a Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Thu, 19 Sep 2019 20:22:34 -0400 Subject: Warn for duplicated dictionary keys (fixes #345) --- libqpdf/QPDFObjectHandle.cc | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'libqpdf/QPDFObjectHandle.cc') diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index a6d07190..4ee25bc7 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -2135,7 +2135,18 @@ QPDFObjectHandle::parseInternal(PointerHolder input, { val = olist.at(++i); } - dict[key_obj.getName()] = val; + std::string key = key_obj.getName(); + if (dict.count(key) > 0) + { + QTC::TC("qpdf", "QPDFObjectHandle duplicate dict key"); + warn(context, + QPDFExc( + qpdf_e_damaged_pdf, + input->getName(), object_description, offset, + "dictionary has duplicated key " + key + + "; last occurrence overrides earlier ones")); + } + dict[key] = val; } object = newDictionary(dict); setObjectDescriptionFromInput( -- cgit v1.2.3-70-g09d2