mirror of
https://github.com/oxen-io/lokinet
synced 2023-12-14 06:53:00 +01:00
try fixing leak
This commit is contained in:
parent
67da33a221
commit
89e5b6b4cc
|
@ -839,8 +839,10 @@ struct PacketBuffer
|
|||
{
|
||||
_ptr = new char[sz];
|
||||
}
|
||||
PacketBuffer(char* buf, size_t sz) : _ptr{buf}, _sz{sz}
|
||||
PacketBuffer(char* buf, size_t sz)
|
||||
{
|
||||
_ptr = buf;
|
||||
_sz = sz;
|
||||
}
|
||||
~PacketBuffer()
|
||||
{
|
||||
|
|
|
@ -469,7 +469,8 @@ namespace libuv
|
|||
udp_glue* glue = static_cast< udp_glue* >(handle->data);
|
||||
if(addr)
|
||||
glue->RecvFrom(nread, buf, addr);
|
||||
if(glue->m_UDP == nullptr || glue->m_UDP->recvfrom != nullptr)
|
||||
if(nread == 0 || glue->m_UDP == nullptr
|
||||
|| glue->m_UDP->recvfrom != nullptr)
|
||||
delete[] buf->base;
|
||||
}
|
||||
|
||||
|
@ -487,13 +488,15 @@ namespace libuv
|
|||
if(sz > 0 && m_UDP)
|
||||
{
|
||||
const size_t pktsz = sz;
|
||||
const llarp_buffer_t pkt{(const byte_t*)buf->base, pktsz};
|
||||
if(m_UDP->recvfrom)
|
||||
{
|
||||
const llarp_buffer_t pkt((const byte_t*)buf->base, pktsz);
|
||||
m_UDP->recvfrom(m_UDP, fromaddr, ManagedBuffer{pkt});
|
||||
}
|
||||
else
|
||||
{
|
||||
m_LastPackets.emplace_back(
|
||||
PacketEvent{llarp::Addr(*fromaddr), PacketBuffer(buf->base, sz)});
|
||||
PacketBuffer pbuf(buf->base, pktsz);
|
||||
m_LastPackets.emplace_back(PacketEvent{*fromaddr, std::move(pbuf)});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue