| 1 | initial version |
This bit sticks out to me:
1 if bit.band(seqn, 0x80) > 0 then -- first frame
2 packets[node] = ByteArray.new()
3 seqn = bit.bxor(seqn, 0x80)
4 end
5
6 local buf = packets[node]:tvb("My frame")
So what happens if the if statement on line 1 is false? This means that packets[node] will be nil, and attempting to use it on line 6 will thus fail. Perhaps line 6 (and any other lines of code that expect packets[node] to not be nil should be placed above line 4, i.e., inside the if block.