From: Remi Gacogne Date: Fri, 12 Jul 2024 09:49:44 +0000 (+0200) Subject: dnsdist: Avoid a double lookup when UMEM state debugging is enabled X-Git-Tag: rec-5.2.0-alpha1~179^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F14429%2Fhead;p=thirdparty%2Fpdns.git dnsdist: Avoid a double lookup when UMEM state debugging is enabled --- diff --git a/pdns/xsk.cc b/pdns/xsk.cc index 2d4ac83a49..5851f1b9b7 100644 --- a/pdns/xsk.cc +++ b/pdns/xsk.cc @@ -87,15 +87,16 @@ LockGuarded, UmemEntryStatus>> s_umems; void checkUmemIntegrity(const char* function, int line, std::shared_ptr>> vect, uint64_t offset, const std::set& validStatuses, UmemEntryStatus::Status newStatus) { auto umems = s_umems.lock(); - if (validStatuses.count(umems->at({vect.get(), offset}).status) == 0) { - std::cerr << "UMEM integrity check failed at " << function << ": " << line << ": status of " << (void*)vect.get() << ", " << offset << " is " << static_cast(umems->at({vect.get(), offset}).status) << ", expected: "; + auto& umemState = umems->at({vect.get(), offset}); + if (validStatuses.count(umemState.status) == 0) { + std::cerr << "UMEM integrity check failed at " << function << ": " << line << ": status of " << (void*)vect.get() << ", " << offset << " is " << static_cast(umemState.status) << ", expected: "; for (const auto status : validStatuses) { std::cerr << static_cast(status) << " "; } std::cerr << std::endl; abort(); } - (*umems)[{vect.get(), offset}].status = newStatus; + umemState.status = newStatus; } } #endif /* DEBUG_UMEM */