Obtain the capture file read lock when computing protocol hierarchy
stats to prevent segfaulting if the file is closed.
The protocol hierarchy stats are always computed on all the packets
of the current file that pass the current filter, so don't let it run
until a read or rescan is complete.
Since the protocol hierarchy stats use the common progress bar,
these two changes keep it from hijacking the progress bar when a
rescan is in progress, which led to anomolies with the stop button
behavior and clearing the progress bar when the stats were done
(but not the temporarily paused rescan.)
Make the stop button actually stop the protocol hierarchy stats.
In the future, the protocol hierarchy stats could perhaps use
process_specified_records from file.c
Fix#18787. Fix#18788.
ElidedLabel escapes HTML after !9261, so use its own methods to make text
small and italicized instead of passing in rich text.
IOGraphDialog used to make an error message, if it existed, bold.
Perhaps ElidedLabel should have a way to have prepended bold
text for such usage.
Autoset "Limit to display filter" if a display filter is
present when the dialog is open, but do not re-enable it each
time the widget is updated, if the user has unchecked it.
[skip ci]
Fix#18461
The LwM2M object instance and resource id may be given in both the
CoAP Uri-Path and the LwM2M TLV header, and in this case the created
uri_path is wrong and resource id lookup will fail.
Change the logic to get object id from CoAP Uri-Path and resource id
from either Uri-Path or LwM2M TLV header.
It looks like AppleClang 10 and 11 generate bogus missing braces
warnings as well. The macOS Intel builder, which has AppleClang
11.0.0.11000033 installed, is failing with
wireshark/epan/dissectors/packet-rtps.c:11403:63: error: suggest braces around initialization of subobject [-Werror,-Wmissing-braces]
coherent_set_entity_info coherent_set_entity_info_object = {0};
^
{}
QVariant canConvert<double>() does not test that a particular QVariant
value can be converted to a double, but only that at least some values
of that type can convert. (Just checking the type is much faster than
actually trying the conversion; this is why convert() has a boolean
output parameter as well.) It thus always returns TRUE for strings even
for strings that fail to convert, and is not by itself a useful test
when trying to sort unknown types.
Luckily, we don't need to test this anyway. Set the default data role used
for sorting to UNFORMATTED_DISPLAYDATA, so the parent QSortFilterProxyModel
will handle QVariants that are numbers appropriately. In particular,
this makes the GeoIP city and country column strings in the Endpoints
table sort correctly.
Fix#18749
When converting from our columns as displayed to the canonical
list of columns, add 1 for the missing conversation ID if it
is not present (as opposed to if it is present.) Also change the
test for the total packets to account for the new conversation ID
column.
Related to #18738
The return of -1 for negative infinity is glibc specific and
non-portable.
/epan/dissectors/packet-synphasor.c:1634:62: error: comparison of constant '-1' with boolean expression is always false [-Werror=bool-compare]
1634 | if ((isinf(pmu_lat) == 1) || (isinf(pmu_lat) == -1)) {
| ^~
Fix
==10365== Conditional jump or move depends on uninitialised value(s)
==10365== at 0x81514B4: get_hfi_length (epan/proto.c:5981)
==10365== by 0x815A0A5: proto_tree_add_pi (epan/proto.c:5953)
==10365== by 0x815F41B: proto_tree_add_uint64 (epan/proto.c:5542)
==10365== by 0x6BF362C: dissect_msg_tag (epan/dissectors/packet-cose.c:462)
==10365== by 0x6BF1A27: dissect_cose_mac (epan/dissectors/packet-cose.c:656)
==10365== by 0x813511A: call_dissector_through_handle (epan/packet.c:757)
==10365== by 0x8130E58: call_dissector_work (epan/packet.c:850)
==10365== by 0x8131604: dissector_try_string_new (epan/packet.c:1751)
==10365== by 0x8131686: dissector_try_string (epan/packet.c:1776)
==10365== by 0x6BD8C60: dissect_coap_payload (epan/dissectors/packet-coap.c:1115)
==10365== by 0x6BDAD34: dissect_coap_message (epan/dissectors/packet-coap.c:1403)
==10365== by 0x6BD8ECB: dissect_coap (epan/dissectors/packet-coap.c:1526)
==10365==
==10365== Conditional jump or move depends on uninitialised value(s)
==10365== at 0x81517EC: get_hfi_length (epan/proto.c:6115)
==10365== by 0x815A0A5: proto_tree_add_pi (epan/proto.c:5953)
==10365== by 0x815F41B: proto_tree_add_uint64 (epan/proto.c:5542)
==10365== by 0x6BF362C: dissect_msg_tag (epan/dissectors/packet-cose.c:462)
==10365== by 0x6BF1A27: dissect_cose_mac (epan/dissectors/packet-cose.c:656)
==10365== by 0x813511A: call_dissector_through_handle (epan/packet.c:757)
==10365== by 0x8130E58: call_dissector_work (epan/packet.c:850)
==10365== by 0x8131604: dissector_try_string_new (epan/packet.c:1751)
==10365== by 0x8131686: dissector_try_string (epan/packet.c:1776)
==10365== by 0x6BD8C60: dissect_coap_payload (epan/dissectors/packet-coap.c:1115)
==10365== by 0x6BDAD34: dissect_coap_message (epan/dissectors/packet-coap.c:1403)
==10365== by 0x6BD8ECB: dissect_coap (epan/dissectors/packet-coap.c:1526)
and
==10365== Conditional jump or move depends on uninitialised value(s)
==10365== at 0x748EB90: hash_by_guid (epan/dissectors/packet-rtps.c:6006)
==10365== by 0xC522FD5: wmem_map_lookup (wsutil/wmem/wmem_map.c:264)
==10365== by 0x74A2E33: rtps_util_detect_coherent_set_end_empty_data_case (epan/dissectors/packet-rtps.c:3294)
==10365== by 0x74A1054: dissect_RTPS_DATA (epan/dissectors/packet-rtps.c:10829)
==10365== by 0x748E606: dissect_rtps_submessage_v2 (epan/dissectors/packet-rtps.c:12064)
==10365== by 0x748DFBE: dissect_rtps_submessages (epan/dissectors/packet-rtps.c:12439)
==10365== by 0x74A3FC9: dissect_rtps (epan/dissectors/packet-rtps.c:12357)
==10365== by 0x748EDD2: dissect_rtps_udp (epan/dissectors/packet-rtps.c:12459)
==10365== by 0x81334CA: dissector_try_heuristic (epan/packet.c:2864)
==10365== by 0x76A8FF6: decode_udp_ports (epan/dissectors/packet-udp.c:712)
==10365== by 0x76AB875: dissect (epan/dissectors/packet-udp.c:1267)
==10365== by 0x76A9DAD: dissect_udp (epan/dissectors/packet-udp.c:1273)
Fixes#18785
We want to return with failure when the number of entries in
the row we're trying to append is greater than the number of
columns, not less than the number of rows in the table.
The IO Graph is the only place that uses appendEntry, and this
allows adding IO Graphs past the tenth graph.
Fix#18762
The code for dissecting enterprise IEs has been reworked.
Previously, each enterprise was registered by its enterprise-ie in a
dissector-table. The per-enterprise dissector would index into an array
of IEs in order to find the correct IE-dissector.
Using this method has following drawbacks:
- IEs had to be defined in two arrays (value_string and dissector),
possibly causing these two arrays becoming out-of-sync,
- the array only can be indexed if all IE-types are contiguous or gaps
are maintained, which would be wasteful in case of bigger gaps
- individual IEs cannot easily be added outside of the source of this
file
This commit implements a new approach that addresses above drawbacks by:
- defining all IE information together in one array,
- using per-vendor dissector_tables containing per-IE dissector handles,
allowing both for arbitrary ie-types and adding individual
enterprise-IEs separately from external code
This method does a two-level lookup for the IES:
- first looking up a vendor-dissector in the pfcp.enterprise_ies table
- if using the generic-ie-dissector a lookup in the per-vendor table to
find the IE-dissector
A vendor-dissector receives the whole IE including header and has to do
all the work. An IE-dissector receives only the data-part and
a tree + header-fields have already been created.
The code for registering the per-IE tree-types has been modified as
well, because these tree-types are now stored together with the
IE-definitions. (Getting rid of the hardcoded indexes is also a plus.)
The 3GPP example enterprise dissector has been removed, as there are two
other enterprises which can serve as example.
Implement USB 2.0 Extension Transaction specified in USB Engineering
Change Notice: USB 2.0 Link Power Management Addendum.
Display Best Effort Service Latency (BESL) instead of Host Initiated
Resume Duration (HIRD) when dissecting LPM Token to align with USB 2.0
ECN Errata for Link Power Management.