From 730f47eb0c87dc383c9c0e080a454ff17fe2ef5d Mon Sep 17 00:00:00 2001 From: Jan Date: Wed, 10 Oct 2018 14:41:48 +0200 Subject: [PATCH] potential fix for release-3.4/#79 (#6789) --- arangod/Auth/UserManager.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/arangod/Auth/UserManager.cpp b/arangod/Auth/UserManager.cpp index 0e29b107a0..68a7ead33d 100644 --- a/arangod/Auth/UserManager.cpp +++ b/arangod/Auth/UserManager.cpp @@ -183,11 +183,13 @@ static void ConvertLegacyFormat(VPackSlice doc, VPackBuilder& result) { doc = doc.resolveExternals(); } VPackSlice authDataSlice = doc.get("authData"); - VPackObjectBuilder b(&result, true); - result.add("user", doc.get("user")); - result.add("active", authDataSlice.get("active")); - VPackSlice extra = doc.get("userData"); - result.add("extra", extra.isNone() ? VPackSlice::emptyObjectSlice() : extra); + { + VPackObjectBuilder b(&result, true); + result.add("user", doc.get("user")); + result.add("active", authDataSlice.get("active")); + VPackSlice extra = doc.get("userData"); + result.add("extra", extra.isNone() ? VPackSlice::emptyObjectSlice() : extra); + } } // private, will acquire _userCacheLock in write-mode and release it. @@ -381,10 +383,12 @@ VPackBuilder auth::UserManager::allUsers() { std::shared_ptr users = QueryAllUsers(_queryRegistry); VPackBuilder result; - VPackArrayBuilder a(&result); - if (users && !users->isEmpty()) { - for (VPackSlice const& doc : VPackArrayIterator(users->slice())) { - ConvertLegacyFormat(doc, result); + { + VPackArrayBuilder a(&result); + if (users && !users->isEmpty()) { + for (VPackSlice const& doc : VPackArrayIterator(users->slice())) { + ConvertLegacyFormat(doc, result); + } } } return result;