From 38cb99f0fc2b608817e7861afc44e89d27992fa1 Mon Sep 17 00:00:00 2001 From: kangping Date: Wed, 7 Jul 2021 02:41:08 +0800 Subject: [PATCH] [srp-server] avoid re-accessing committed SRP updates (#6785) We should remove the UpdateMetadata before committing the SRP update to ensure that the same UpdateMetadata (and the Host object) can never be touched again. --- src/core/net/srp_server.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/core/net/srp_server.cpp b/src/core/net/srp_server.cpp index 2e47e5c10..543409035 100644 --- a/src/core/net/srp_server.cpp +++ b/src/core/net/srp_server.cpp @@ -298,9 +298,8 @@ void Server::HandleServiceUpdateResult(ServiceUpdateId aId, Error aError) void Server::HandleServiceUpdateResult(UpdateMetadata *aUpdate, Error aError) { - CommitSrpUpdate(aError, aUpdate->GetDnsHeader(), aUpdate->GetHost(), aUpdate->GetMessageInfo()); - IgnoreError(mOutstandingUpdates.Remove(*aUpdate)); + CommitSrpUpdate(aError, aUpdate->GetDnsHeader(), aUpdate->GetHost(), aUpdate->GetMessageInfo()); aUpdate->Free(); if (mOutstandingUpdates.IsEmpty())