Skip to content

Commit

Permalink
apps.ipv6.reassemble: fix packet leak
Browse files Browse the repository at this point in the history
  • Loading branch information
alexandergall committed Dec 14, 2018
1 parent a3995aa commit 4e28690
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion src/apps/ipv6/reassemble.lua
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,10 @@ function Reassembler:reassembly_error(entry, icmp_error)
end
end

local function cleanup_evicted_entry (entry)
packet.free(entry.value.packet)
end

function Reassembler:lookup_reassembly(h, fragment_id)
local key = self.scratch_fragment_key
key.src_addr, key.dst_addr, key.fragment_id =
Expand All @@ -241,7 +245,8 @@ function Reassembler:lookup_reassembly(h, fragment_id)
reassembly.packet.length = ether_ipv6_header_len

local did_evict = false
entry, did_evict = self.ctab:add(key, reassembly, false)
entry, did_evict = self.ctab:add(key, reassembly, false,
cleanup_evicted_entry)
if did_evict then self:record_eviction() end
return entry
end
Expand Down

0 comments on commit 4e28690

Please sign in to comment.