From ce5273c852cfbc3386532b90565e47d29aa92464 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Fri, 23 Nov 2018 12:52:30 +0100 Subject: [PATCH] Bug fix/handle nullptr (#7432) * handle more potential nullptrs, fix try/catch scope * fix none reply --- arangod/Utils/CollectionNameResolver.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/arangod/Utils/CollectionNameResolver.cpp b/arangod/Utils/CollectionNameResolver.cpp index 639842aa37..1e13a2fd98 100644 --- a/arangod/Utils/CollectionNameResolver.cpp +++ b/arangod/Utils/CollectionNameResolver.cpp @@ -118,7 +118,11 @@ TRI_voc_cid_t CollectionNameResolver::getCollectionIdCluster( // We have to look up the collection info: auto* ci = ClusterInfo::instance(); - auto const cinfo = (ci) ? ci->getCollectionNT(_vocbase.name(), name) : nullptr; + if (ci == nullptr) { + return 0; + } + + auto const cinfo = ci->getCollectionNT(_vocbase.name(), name); if (cinfo != nullptr) { return cinfo->id(); @@ -350,19 +354,19 @@ std::shared_ptr CollectionNameResolver::getDataSource( // cluster coordinator auto* ci = ClusterInfo::instance(); - if (!ci) { + if (ci == nullptr) { return nullptr; } - try { - ptr = (ci) ? ci->getCollectionNT(_vocbase.name(), nameOrId) : nullptr; + ptr = ci->getCollectionNT(_vocbase.name(), nameOrId); - if (ptr == nullptr) { + if (ptr == nullptr) { + try { ptr = ci->getView(_vocbase.name(), nameOrId); + } catch (...) { + LOG_TOPIC(ERR, arangodb::Logger::FIXME) + << "caught exception while resolving cluster data-source: " << nameOrId; } - } catch (...) { - LOG_TOPIC(ERR, arangodb::Logger::FIXME) - << "caught exception while resolving cluster data-source: " << nameOrId; } }