From b3ffdeb9f2938cda2fd8306801d160be88e1faa1 Mon Sep 17 00:00:00 2001 From: Vivien Nicolas Date: Tue, 7 Mar 2023 12:28:54 +0100 Subject: [PATCH] [PacketBufferHandle::IsNull] Missing null check after calling PacketBufferHandle::CloneData in UserDirectedCommissioningClient --- .../UserDirectedCommissioningClient.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/protocols/user_directed_commissioning/UserDirectedCommissioningClient.cpp b/src/protocols/user_directed_commissioning/UserDirectedCommissioningClient.cpp index ac3c017da0577e..974acbcc4f5d48 100644 --- a/src/protocols/user_directed_commissioning/UserDirectedCommissioningClient.cpp +++ b/src/protocols/user_directed_commissioning/UserDirectedCommissioningClient.cpp @@ -34,17 +34,17 @@ namespace UserDirectedCommissioning { CHIP_ERROR UserDirectedCommissioningClient::SendUDCMessage(TransportMgrBase * transportMgr, System::PacketBufferHandle && payload, chip::Transport::PeerAddress peerAddress) { - CHIP_ERROR err = EncodeUDCMessage(payload); - if (err != CHIP_NO_ERROR) - { - return err; - } + ReturnErrorOnFailure(EncodeUDCMessage(payload)); + ChipLogProgress(Inet, "Sending UDC msg"); // send UDC message 5 times per spec (no ACK on this message) for (unsigned int i = 0; i < 5; i++) { - err = transportMgr->SendMessage(peerAddress, payload.CloneData()); + auto msgCopy = payload.CloneData(); + VerifyOrReturnError(!msgCopy.IsNull(), CHIP_ERROR_NO_MEMORY); + + auto err = transportMgr->SendMessage(peerAddress, msgCopy); if (err != CHIP_NO_ERROR) { ChipLogError(AppServer, "UDC SendMessage failed: %" CHIP_ERROR_FORMAT, err.Format()); @@ -53,7 +53,7 @@ CHIP_ERROR UserDirectedCommissioningClient::SendUDCMessage(TransportMgrBase * tr sleep(1); } ChipLogProgress(Inet, "UDC msg send status %" CHIP_ERROR_FORMAT, err.Format()); - return err; + return CHIP_NO_ERROR; } CHIP_ERROR UserDirectedCommissioningClient::EncodeUDCMessage(const System::PacketBufferHandle & payload)