[Memory Leak] Change raw pointer to unique_ptr to avoid potential leak in dbg stream (#4616)

Co-authored-by: KimLS <KimLS@peqtgc.com>
This commit is contained in:
Alex 2025-01-26 17:05:45 -08:00 committed by GitHub
parent 7a226ca4ef
commit 1f3ac2dc4f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 4 additions and 6 deletions

View File

@ -500,10 +500,9 @@ void EQ::Net::DaybreakConnection::ProcessQueue()
break; break;
} }
auto packet = iter->second; auto &packet = iter->second;
stream->packet_queue.erase(iter); stream->packet_queue.erase(iter);
ProcessDecodedPacket(*packet); ProcessDecodedPacket(*packet);
delete packet;
} }
} }
} }
@ -513,9 +512,8 @@ void EQ::Net::DaybreakConnection::RemoveFromQueue(int stream, uint16_t seq)
auto s = &m_streams[stream]; auto s = &m_streams[stream];
auto iter = s->packet_queue.find(seq); auto iter = s->packet_queue.find(seq);
if (iter != s->packet_queue.end()) { if (iter != s->packet_queue.end()) {
auto packet = iter->second; auto &packet = iter->second;
s->packet_queue.erase(iter); 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(); DynamicPacket *out = new DynamicPacket();
out->PutPacket(0, p); out->PutPacket(0, p);
s->packet_queue.emplace(std::make_pair(seq, out)); s->packet_queue.emplace(std::make_pair(seq, std::unique_ptr<Packet>(out)));
} }
} }

View File

@ -201,7 +201,7 @@ namespace EQ
uint16_t sequence_in; uint16_t sequence_in;
uint16_t sequence_out; uint16_t sequence_out;
std::map<uint16_t, Packet*> packet_queue; std::map<uint16_t, std::unique_ptr<Packet>> packet_queue;
DynamicPacket fragment_packet; DynamicPacket fragment_packet;
uint32_t fragment_current_bytes; uint32_t fragment_current_bytes;