diff --git a/tools/dissectors/1-hfudt.lua b/tools/dissectors/1-hfudt.lua index eeda0c4d7e..00b71a341a 100644 --- a/tools/dissectors/1-hfudt.lua +++ b/tools/dissectors/1-hfudt.lua @@ -313,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 and message_number < 50 and message_part_number < 10 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