diff --git a/tools/dissectors/1-hfudt.lua b/tools/dissectors/1-hfudt.lua index 8179276dbb..70831416b9 100644 --- a/tools/dissectors/1-hfudt.lua +++ b/tools/dissectors/1-hfudt.lua @@ -163,10 +163,14 @@ local unsourced_packet_types = { local fragments = {} +local RFC_5389_MAGIC_COOKIE = 0x2112A442 + function p_hfudt.dissector(buf, pinfo, tree) - -- make sure this isn't a STUN packet - those don't follow HFUDT format - if pinfo.dst == Address.ip("stun.highfidelity.io") then return end + -- make sure this isn't a STUN packet - those don't follow HFUDT format + if buf:len() >= 8 and buf(4, 4):uint() == RFC_5389_MAGIC_COOKIE then + return 0 + end -- validate that the packet length is at least the minimum control packet size if buf:len() < 4 then return end