From 1f3ac2dc4fd62e3e0d0c9cec210843d7202be0cd Mon Sep 17 00:00:00 2001 From: Alex Date: Sun, 26 Jan 2025 17:05:45 -0800 Subject: [PATCH] [Memory Leak] Change raw pointer to unique_ptr to avoid potential leak in dbg stream (#4616) Co-authored-by: KimLS --- common/net/daybreak_connection.cpp | 8 +++----- common/net/daybreak_connection.h | 2 +- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/common/net/daybreak_connection.cpp b/common/net/daybreak_connection.cpp index 0fefc9982..6af6576b1 100644 --- a/common/net/daybreak_connection.cpp +++ b/common/net/daybreak_connection.cpp @@ -500,10 +500,9 @@ void EQ::Net::DaybreakConnection::ProcessQueue() break; } - auto packet = iter->second; + auto &packet = iter->second; stream->packet_queue.erase(iter); ProcessDecodedPacket(*packet); - delete packet; } } } @@ -513,9 +512,8 @@ void EQ::Net::DaybreakConnection::RemoveFromQueue(int stream, uint16_t seq) auto s = &m_streams[stream]; auto iter = s->packet_queue.find(seq); if (iter != s->packet_queue.end()) { - auto packet = iter->second; + auto &packet = iter->second; s->packet_queue.erase(iter); - delete packet; } } @@ -527,7 +525,7 @@ void EQ::Net::DaybreakConnection::AddToQueue(int stream, uint16_t seq, const Pac DynamicPacket *out = new DynamicPacket(); out->PutPacket(0, p); - s->packet_queue.emplace(std::make_pair(seq, out)); + s->packet_queue.emplace(std::make_pair(seq, std::unique_ptr(out))); } } diff --git a/common/net/daybreak_connection.h b/common/net/daybreak_connection.h index c2c714813..2561f91a4 100644 --- a/common/net/daybreak_connection.h +++ b/common/net/daybreak_connection.h @@ -201,7 +201,7 @@ namespace EQ uint16_t sequence_in; uint16_t sequence_out; - std::map packet_queue; + std::map> packet_queue; DynamicPacket fragment_packet; uint32_t fragment_current_bytes;