Merge pull request #15687 from SimonWalton-HiFi/dissectors-message-limits

Dissectors: Limit message number & position values
This commit is contained in:
Howard Stearns 2019-06-06 17:03:09 -07:00 committed by GitHub
commit 6394d14f2a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -158,7 +158,13 @@ local packet_types = {
}
local unsourced_packet_types = {
["DomainList"] = true
["DomainList"] = true,
["DomainConnectRequest"] = true,
["ICEPing"] = true,
["ICEPingReply"] = true,
["DomainServerConnectionToken"] = true,
["DomainSettingsRequest"] = true,
["ICEServerHeartbeatACK"] = true
}
local fragments = {}
@ -307,7 +313,10 @@ function p_hfudt.dissector(buf, pinfo, tree)
-- check if we have part of a message that we need to re-assemble
-- before it can be dissected
if message_bit == 1 and message_position ~= 0 then
-- limit array indices to prevent lock-up with arbitrary data
if message_bit == 1 and message_position ~= 0 and message_number < 100
and message_part_number < 100 then
if fragments[message_number] == nil then
fragments[message_number] = {}
end