From b71317bbbc5194eed144a41da4097165b970fd44 Mon Sep 17 00:00:00 2001 From: Jan Steemann Date: Wed, 26 Oct 2016 17:02:23 +0200 Subject: [PATCH] fix sanitation of externals --- lib/Basics/VelocyPackHelper.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/Basics/VelocyPackHelper.cpp b/lib/Basics/VelocyPackHelper.cpp index 2b60176fd4..7465b0780e 100644 --- a/lib/Basics/VelocyPackHelper.cpp +++ b/lib/Basics/VelocyPackHelper.cpp @@ -946,7 +946,8 @@ uint64_t VelocyPackHelper::hashByAttributes( void VelocyPackHelper::SanitizeExternals(VPackSlice const input, VPackBuilder& output) { if (input.isExternal()) { - output.add(input.resolveExternal()); + // recursively resolve externals + SanitizeExternals(input.resolveExternal(), output); } else if (input.isObject()) { output.openObject(); for (auto const& it : VPackObjectIterator(input)) { @@ -970,13 +971,13 @@ bool VelocyPackHelper::hasExternals(VPackSlice input) { return true; } else if (input.isObject()) { for (auto const& it : VPackObjectIterator(input)) { - if (hasExternals(it.value) == true) { + if (hasExternals(it.value)) { return true; - }; + } } } else if (input.isArray()) { for (auto const& it : VPackArrayIterator(input)) { - if (hasExternals(it) == true) { + if (hasExternals(it)) { return true; } }