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.
When reading a packet capture with capinfos on a system with
FIPS 140-2 enabled, libgcrypt will abort for any non approved
algorithm. In this case the RIPEMD 160.
Make the "ninja install" target in the MINGW64 shell work and
allow Wireshark to run from the msys2 installation, besides
the build directory.
To clarify the names used here MSYSTEM is the distribution with a
Linux-like environment for Windows. MINGW is the toolchain.
It is possible to use MinGW without MSYS2 and we generally select
the CMake variables WIN32/MSVC/MINGW/USE_MSYSTEM taking that into
consideration but that WIN32+MINGW platform is not supported at the
moment and it's unlikely to be supported in the near future.
Originally WS_DISABLE_DEBUG was chosen to be
similar to G_DISABLE_ASSERT and NDEBUG.
However generator expressions are essential for modern CMake
but the syntax is weird and having to use negations makes it
ten-fold worse.
Remove the negation. Instead of changing the CMake variable
reverse the macro definition for WS_DISABLE_DEBUG.
The $<CONFIG:cgs> generator expression with multiple config arguments
requires CMake >= 3.19 so we can't use that yet for a further
syntactical simplification.
Falco plugins don't yet have a standard installation location, and even
when they do we might not want to install all of them. Remove plugin
detection from FindSinsp.cmake and note that you should just pass the
paths to your plugins in SINSP_PLUGINS.
Instead of connecting ColoringRulesDialog's buttonBox accepted()
signal to two different slots (once in the .ui file, and one
automatically from a name), accept the dialog only after writing
the colors.
This prevents starting to recolor the PacketList before the new color
list has been been written.
Fix#12475. Fix#15471.