during fuzz testing or randpkt testing; somebody might be putting bad
packets on the wire to try to, for example, crash or break into your
protocol implementation.
svn path=/trunk/; revision=45749
openSAFETY - Cleanup SSDO dissection, add additional information, remove logic bug
- rename isRequest to isResponse, which is the right name for it
- clean-up elseif to a better readable stand-alone if-clause
- add sender for response package without valid scm
svn path=/trunk/; revision=41824
Guards the calledOnce boolean, against malformed traps, using register_frame_end_routine.
Fixes openSAFETY - Malformed packets disable the dissector for the WS session
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6950
svn path=/trunk/; revision=41674
In some cases:
Use val_to_str_const() instead of val_to_str();
Reformat long lines;
Do some general whitespace changes.
svn path=/trunk/; revision=41587
Rare messages can be malformed as such, that the first part is valid, the
second part fails. For SNMT messages, this patch fixes the problem as such that
it displays a correct column header and adds an expert info explaining the
issue.
svn path=/trunk/; revision=40829
- New Config option to configure the sequence of frames using UDP
- an Info will be added, if the SCM UDID is not configured or if it is wrongly
configured, so that the user can act on it.
- SCM UDID will only be printed if configured correctly, if not a warning will
be added to inform, that the first byte for the UDID will be assumed to be 00
- UDP dissection can enforce the number of sub-package the dissection should
assume
- SSDO: isRequest is determined by it's field not by the message id
- SSDO: Unused code for SNMT Reset Guarding SCM has been removed
- SNMT: error_group and error_code for SN_FAIL have not been dissected
correctly
- Sercos III: bug != instead of ==, is fixed
- dissect_opensafety_udp renamed to dissect_opensafety_udpdata, because of
future dissector called opensafety_udp which will handle transport of
openSAFETY data over UDP
- dissect_opensafety_udpdata enhanced to determine the index of the given frame
in the package. Needed for correct assembly of COL_INFO
- Added heuristic dissector hook for opensafety_udp dissector. The dissector
will be submitted to this list at a future point
- Enhanced description of the dissector to reflect it's capabilities
- Reworked the description for the config options to be more understandable
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6672
svn path=/trunk/; revision=40214
- Remove unneeded #includes;
- Use val_to_str_const() in several places;
- Reformat long lines;
- Fix whitepace and indentation.
svn path=/trunk/; revision=40016
- Renaming opensafety.msg.type to opensafety.msg.direction
- Introducing real opensafety.msg.type as opensafety.msg.category and generated
field
- Adding openSAFETY Sender and Receiver field, for all types of messages
- Adding openSAFETY Domain number and Node number as generated fields, which
allows filtering for them
- Rework PACKET_RECEIVED_BY and PACKET_SEND_FROM_TO_ALL to PACKET_RECEIVER and
PACKET_SENDER
- Replaced PACKET_SEND_FROM_TO with calls to PACKET_RECEIVER and PACKET_SENDER
- Added functions, so that the new sender and receiver fields as well as
network information are added as sub-trees
- Removed DISSECTOR_ASSERT in opensafety_get_scm_udid as it is not needed here
anymore
- Added the connection valid bit to the dissection tree ( has been there as
message type, but was never validated )
- Added calculations for Domain Network Addr, depending if a valid UDID for the
SCM is present in SSDO and SPDO
- Corrected error, where sub-tree for spdo dissection used global ssdo_tree
instead of spdo_tree
- Added "Message Type unknown" which leads to PI_MALFORMED marked entry in
dissect_opensafety_message
- Added check for ( length - frameOffset ) is below or equal zero, to avoid
using dissector asserts
- Added check for freak frame start detection, where both frame starts would be
equal (could happen during fuzztest)
- Removed DISSECTOR_ASSERT for both frame starts being different
- Added check, that if the frame address is above 1024, the package get's
marked as PI_MALFORMED (fuzztest)
- Fixed CID 1215, CID 1224 and CID 1246/1247
- Corrected naming issue with openSAFETY/SercosIII dissection using UDP
transport
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6528
svn path=/trunk/; revision=39701
must not just do a "continue" if the offset into the packet has not been
advanced, as you will get an infinite loop if you do.
svn path=/trunk/; revision=38383
The way heuristic dissection was handled by the openSAFETY plugin, could lead
to out-of-memory problems with large files (>50.000 packets). The new version
does not use ep_alloc anymore, but a static boolean instead.
Also, the code registering for the SercosIII dissector got simplified, as the
SercosIII dissector is no longer a plugin.
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6061
svn path=/trunk/; revision=37874
Two changes for openSAFETY over Modbus/TCP:
1. Changing the default preference for Big Endian encoding from TRUE to FALSE
2. Changing the position in the tree for the dissection to the top-level,
therefore, the openSAFETY entries no longer will show up as children of the
Modbus entry. This is the same behaviour as the other variants for openSAFETY
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6038
svn path=/trunk/; revision=37739
Handling of SercosIII if the plugin can not be loaded.
Changed the behaviour - if the SercosIII plugin is not available, the
openSAFETY dissector registers itself for ETHERTYPE_SERCOS. SercosIII
packages can not be dissected anyway in such a case and currently no
other dissector will handle those packages.
The following steps will be taken to display the situation to the user:
The message "SercosIII dissector not available, openSAFETY/SercosIII
native dissection." will be added to the tree. Additionally a similar
warning will be presented on the console during startup of wireshark.
All openSAFETY packages will be dissected, displaying the normal
openSAFETY information.
This will be more transparent for the customer.
svn path=/trunk/; revision=37533