Comment # 22
on bug 8505
from Roland Knall
(In reply to comment #18)
> I will review (and probably commit) the current patch as-is. I'll be happy
> to accept a follow-up patch that does nice things with the tvbs, but I
> understand at this point you probably don't have a whole lot of desire for
> the extra work :)
Ok, so, I changed the dissector. The whole thing now supports dissection
strictly based on the TVB functionality. Additionally, I added a try/catch
clause in the heuristic filter, where it checks, if by chance we got wrong
boundaries and the necessary bytes are not available. There are only 2
exceptions where ep_tvb_memdup is still in use. The first is the crc checks,
where the bytes the crc is calculated over is being copied to a byte array
prior any checks. The crc functions do not use tvb functionality. The second
exception is Modbus/TCP dissection. The whole openSAFETY frame is twisted, as
every other 2 bytes are exchanged. I copy the whole frame, rectify the order,
add it with tvb_real_data and from there on use the same functions as for every
other sub fieldbus.
I also removed the unxorframe stuff. During the replacement of the bytes arrays
I came to the conclusion, that it is sufficient to simply pass the mac address
of the master node (UDID of SCM) and apply it where appropriate.
Read_lowhigh_order is also removed from the patch.
I have fuzz-tested the changes, but did not check if valgrind still crashes, as
I am using a mac and have not set up valgrind here.
You are receiving this mail because:
- You are watching all bug changes.