]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Properly release UDP states when using random IDs 11374/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 28 Feb 2022 12:20:40 +0000 (13:20 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 28 Feb 2022 12:20:40 +0000 (13:20 +0100)
pdns/dnsdist.cc

index 58f695e118fd319a7d480fc45a0a5c1d0653b81e..204b13269523eb8f5b8d2819d95ee9f68b52a2ed 100644 (file)
@@ -657,6 +657,7 @@ void responderThread(std::shared_ptr<DownstreamState> dss)
           // DoH query, we cannot touch du after that
           handleUDPResponseForDoH(std::move(du), std::move(response), std::move(*ids));
 #endif
+          dss->releaseState(queryId);
           continue;
         }
 
@@ -667,6 +668,7 @@ void responderThread(std::shared_ptr<DownstreamState> dss)
         memcpy(&cleartextDH, dr.getHeader(), sizeof(cleartextDH));
 
         if (!processResponse(response, localRespRuleActions, dr, ids->cs && ids->cs->muted, true)) {
+          dss->releaseState(queryId);
           continue;
         }