mirror of
https://github.com/espressif/openthread.git
synced 2026-08-06 10:47:46 +00:00
[coap] fix CoapSecure::Stop() accessing freed message instance (#6883)
This commit fixes an issue in `CoapSecure::Stop()` accessing an already dequeued and freed `Message` instance (from the `for` loop iteration trying to `GetNext()` message). The code in this commit removes the head element one by one (`MessageQueue::GetHead()`) until the queue becomes empty.
This commit is contained in:
@@ -84,9 +84,11 @@ exit:
|
||||
|
||||
void CoapSecure::Stop(void)
|
||||
{
|
||||
ot::Message *message;
|
||||
|
||||
mDtls.Close();
|
||||
|
||||
for (ot::Message *message = mTransmitQueue.GetHead(); message != nullptr; message = message->GetNext())
|
||||
while ((message = mTransmitQueue.GetHead()) != nullptr)
|
||||
{
|
||||
mTransmitQueue.Dequeue(*message);
|
||||
message->Free();
|
||||
|
||||
Reference in New Issue
Block a user