aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2024-02-22fix(#19647): correction of fractional calculationsmarmonier_c1-33/+175
Altitude dissector added
2024-02-22LUA: Pickup LUA 5.3 or 5.4 if available and use it.Anders Broman2-2/+2
2024-02-22AllJoyn: Add recursion checksGerald Combs1-6/+33
2024-02-216LoWPAN: Add recursion checksGerald Combs1-0/+15
2024-02-21GTP: Fix filtering of UL/DL itemsJohn Thacker1-5/+9
The uplink and downlink bit rate items, and the maximum SDU size, are contained in a single octet but added to the tree using proto_tree_add_uint_format[_value] after multiplying by various factors, so the values don't actually fit in a FT_UINT8. The fields need to be large enough to fit the largest value added after transformation. The filter engine won't allow filters for values outside the field range, e.g. $ ./run/dftest -s 'gtp.qos_max_sdu_size == 1500' Filter: gtp.qos_max_sdu_size == 1500 Error: "1500" too big for this field, maximum 255. gtp.qos_max_sdu_size == 1500 ^~~~ After: $ ./run/dftest -s 'gtp.qos_max_sdu_size == 1500' Filter: gtp.qos_max_sdu_size == 1500 Syntax tree: 0 TEST_ANY_EQ: 1 FIELD(gtp.qos_max_sdu_size <FT_UINT16>) 1 FVALUE(1500 <FT_UINT16>) Instructions: 0000 READ_TREE gtp.qos_max_sdu_size -> R0 0001 IF_FALSE_GOTO 3 0002 ANY_EQ R0 == 1500 0003 RETURN
2024-02-21LUA: Make it compile with LUA 5.4Anders Broman2-1/+9
2024-02-21LUA bitop: Convery our lua_bitop.c to work with 5.3 and 5.4Anders Broman1-8/+17
The code is written by Andrew Engelbrecht and found here: https://github.com/LuaJIT/LuaJIT/issues/384
2024-02-21TN5250: Add a recursion checkGerald Combs1-0/+8
2024-02-21Add Clang-Tidy suppressions to various dissectorsGerald Combs6-0/+28
Add NOLINTNEXTLINE suppressions for some existing recursion checks.
2024-02-21MONGO: Add a recursion checkGerald Combs1-0/+9
2024-02-21dfilter: Handle 64-bit extended value stringsJohn Thacker2-4/+16
Allow matching against 64-bit extended value strings the same way as other value strings. The IAX2 sample capture on the Wiki is a good test of this. Previously the matches operator would never match, and comparison operators we not allowed. Before: $ ./run/dftest -s 'iax2.voice.codec == "GSM compression"' Filter: iax2.voice.codec == "GSM compression" Error: "GSM compression" cannot be found among the possible values for iax2.voice.codec. iax2.voice.codec == "GSM compression" ^~~~~~~~~~~~~~~~~ After: $ ./run/dftest -s 'iax2.voice.codec == "GSM compression"' Filter: iax2.voice.codec == "GSM compression" Syntax tree: 0 TEST_ANY_EQ: 1 FIELD(iax2.voice.codec <FT_UINT64>) 1 FVALUE(2 <FT_UINT64>) Instructions: 0000 READ_TREE iax2.voice.codec -> R0 0001 IF_FALSE_GOTO 3 0002 ANY_EQ R0 == 2 0003 RETURN
2024-02-21SMB2: Update reserved field and add new dissectionwinprotocolwireshark1-8/+156
Added dissection for FSCTL_REFS_STREAM_SNAPSHOT_MANAGEMENT Request Add FileFullEaInformation flags Update SMB2 lock response field unknown to reserved. Update flush request/response reserved fields.
2024-02-21extcap: Allow starting from extcap configJohn Thacker4-41/+43
Rework the changes from 428f2228533351baf6509b8fc50a075cdbc136b0 a little bit to restore the ability to start a capture from the extcap options dialog. When the the dialog is opened for configuration, present both the Save and the Start button. Continue to only have Start when the dialog was spawned because the user wanted to start a capture but a mandatory parameter was not configured. Use the default QDialogButtonBox "Discard/Close without Saving" button when closing the dialog without saving the user input for new preferences. Fix #19199
2024-02-21R-GOOSE: Strengthen heuristic for CLTP on UDPJohn Thacker3-80/+95
Reduce false positives of the CLTP on UDP dissector (RFC 1240) by looking at the parameters as well and also ruling out length indicator zero. See https://ask.wireshark.org/question/31455/i-see-a-malformed-packet-in-wireshark-from-a-google-ip-address-on-port-2400-using-r-goose-protocol-what-could-this-be/ RFC 1240 was rendered Historic by RFC 2556, which noted that "at this time there do not seem to be any implementations" and recommended TPKT (ISO on TCP) instead. However, R-GOOSE does use RFC 1240. In practice, it seems like R-GOOSE uses the IANA registered port for ISO-TSAP, 102, just like TPKT does on TCP. Perhaps we should register the dissector to that port instead of a heuristic dissector if someone can confirm that. Move the dissector from goose to ositp. This doesn't cause any preference issues because heuristic dissectors are saved in the preference file by name and the name won't change.
2024-02-20text2pcap: Set encapsulation to WIRESHARK_UPPER_PDU with -PJohn Thacker1-0/+1
The documentation, both man page and help, claims that text2pcap automatically sets the encapsulation to WIRESHARK_UPPER_PDU if -P is given. Make the behavior match the documentation.
2024-02-21TPNCP: Fix two potential array overruns.Darius Davis1-2/+6
The TPNCP dissector depends upon a resource file, tpncp.dat, being loaded during initialization. If a non-default tpncp.dat was used, the TPNCP dissector could potentially perform some operations beyond the bounds of a fixed-size array while loading tpncp.dat. If a non-default tpncp.dat was used and an attempt was made to dissect malformed TPNCP traffic, the TPNCP dissector could potentially perform a read beyond the end of an array. This change adds explicit bounds-checks to eliminate these possible OOB accesses. There is zero chance of this being triggered in a default unmodified installation of Wireshark: Loading of the tpncp.dat file is conditional on a preference setting which defaults to FALSE, and even if it is configured to TRUE, the included tpncp.dat does not trigger either of these OOB operations. It still seems worthwhile to make the parser and dissector generally more robust.
2024-02-205co-rap: Add a Clang-Tidy suppressionGerald Combs1-0/+1
2024-02-21RBM: Add a recursion checkGerald Combs1-1/+24
Fix ``` wireshark/epan/dissectors/file-rbm.c:196:13: warning: function 'dissect_rbm_array' is within a recursive call chain [misc-no-recursion] 196 | static void dissect_rbm_array(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value_str) | ^ wireshark/epan/dissectors/file-rbm.c:410:13: note: example recursive call chain, starting from function 'dissect_rbm_object' 410 | static void dissect_rbm_object(tvbuff_t* tvb, packet_info* pinfo, proto_tree* ptree, guint* offset, gchar** type, gchar** value) | ^ wireshark/epan/dissectors/file-rbm.c:439:4: note: Frame #1: function 'dissect_rbm_object' calls function 'dissect_rbm_string' here: 439 | dissect_rbm_string(tvb, pinfo, tree, offset, &value_local); | ^ wireshark/epan/dissectors/file-rbm.c:325:2: note: Frame #2: function 'dissect_rbm_string' calls function 'dissect_rbm_object' here: 325 | dissect_rbm_object(tvb, pinfo, tree, offset, NULL, NULL); | ^ wireshark/epan/dissectors/file-rbm.c:325:2: note: ... which was the starting point of the recursive call chain; there may be other cycles wireshark/epan/dissectors/file-rbm.c:222:13: warning: function 'dissect_rbm_hash' is within a recursive call chain [misc-no-recursion] 222 | static void dissect_rbm_hash(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value_str) | ^ wireshark/epan/dissectors/file-rbm.c:321:13: warning: function 'dissect_rbm_string' is within a recursive call chain [misc-no-recursion] 321 | static void dissect_rbm_string(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value) | ^ wireshark/epan/dissectors/file-rbm.c:329:13: warning: function 'dissect_rbm_regex' is within a recursive call chain [misc-no-recursion] 329 | static void dissect_rbm_regex(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value) | ^ wireshark/epan/dissectors/file-rbm.c:344:13: warning: function 'dissect_rbm_userclass' is within a recursive call chain [misc-no-recursion] 344 | static void dissect_rbm_userclass(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value) | ^ wireshark/epan/dissectors/file-rbm.c:355:13: warning: function 'dissect_rbm_variable' is within a recursive call chain [misc-no-recursion] 355 | static void dissect_rbm_variable(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value_str) | ^ wireshark/epan/dissectors/file-rbm.c:368:13: warning: function 'dissect_rbm_struct' is within a recursive call chain [misc-no-recursion] 368 | static void dissect_rbm_struct(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** value) | ^ wireshark/epan/dissectors/file-rbm.c:374:13: warning: function 'dissect_rbm_drb' is within a recursive call chain [misc-no-recursion] 374 | static void dissect_rbm_drb(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset) | ^ wireshark/epan/dissectors/file-rbm.c:383:13: warning: function 'dissect_rbm_rubyobject' is within a recursive call chain [misc-no-recursion] 383 | static void dissect_rbm_rubyobject(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset) | ^ wireshark/epan/dissectors/file-rbm.c:400:13: warning: function 'dissect_rbm_extended' is within a recursive call chain [misc-no-recursion] 400 | static void dissect_rbm_extended(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset) | ^ wireshark/epan/dissectors/file-rbm.c:410:13: warning: function 'dissect_rbm_object' is within a recursive call chain [misc-no-recursion] 410 | static void dissect_rbm_object(tvbuff_t* tvb, packet_info* pinfo, proto_tree* ptree, guint* offset, gchar** type, gchar** value) | ^ wireshark/epan/dissectors/file-rbm.c:535:6: warning: function 'dissect_rbm_inline' is within a recursive call chain [misc-no-recursion] 535 | void dissect_rbm_inline(tvbuff_t* tvb, packet_info* pinfo, proto_tree* tree, guint* offset, gchar** type, gchar** value) | ^ ```
2024-02-21MP4: Add Clang-Tidy suppressionsGerald Combs1-0/+3
2024-02-21JPEG: Add a recursion checkGerald Combs1-0/+8
Fix ``` /builds/wireshark/wireshark/epan/dissectors/file-jpeg.c:773:1: warning: function 'process_tiff_ifd_chain' is within a recursive call chain [misc-no-recursion] 773 | process_tiff_ifd_chain(proto_tree *tree, tvbuff_t *tvb, packet_info *pinfo, | ^ /builds/wireshark/wireshark/epan/dissectors/file-jpeg.c:773:1: note: example recursive call chain, starting from function 'process_tiff_ifd_chain' /builds/wireshark/wireshark/epan/dissectors/file-jpeg.c:896:37: note: Frame #1: function 'process_tiff_ifd_chain' calls function 'process_tiff_ifd_chain' here: 896 | process_tiff_ifd_chain(tree, tvb, pinfo, encoding, | ^ /builds/wireshark/wireshark/epan/dissectors/file-jpeg.c:896:37: note: ... which was the starting point of the recursive call chain; there may be other cycles ```
2024-02-21Thrift: Add support for raw sub-dissectorsTriton Circonflexe2-56/+283
- Move all basic dissect_thrift_t_<type> implementations into dissect_thrift_raw_<type> that takes an additional dissector_t parameter. - All dissect_thrift_t_<type> just calls dissect_thrift_raw_<type> with a NULL raw dissector. - When the dissector_t parameter is set, create a sub-tvbuff_t pointing to the raw content of the simple type (integral or binary). - There are 2 specific cases within the TCompactProtocol part: 1. For booleans, the sub-dissector is responsible for using only the least significant bit as the boolean value. The most obvious use of the boolean raw sub-dissector is the use of a true_false_string. 2. For varint, we manufacture a tvbuff_t containing the big-endian value of the right size to be the same as TBinaryProtocol. - Allow the raw sub-dissector to push the responsibility back to the generic dissector using thrift_opt_t.use_std_dissector = TRUE. A common use case for that is a specific dissection for some values only in a key/value map (configuration keys). - Add a public dissect_thrift_t_raw_data() function that takes a type for dispatch as well as the dissector_t.
2024-02-21stats tree: Update plugins for new path separatorJohn Thacker2-12/+12
Update the pinfo stats tree plugin and the F5 trailer for the new stats tree path separator Follow up to 53638f9ccfc9ce7e685532062c3b4068a759f7dd
2024-02-21ISIS-LSP: fix masks for attach set of flagsMartin Mathieson1-4/+4
2024-02-20BLF: Fix the buildGerald Combs1-3/+5
2024-02-20BLF: Add a recursion checkGerald Combs1-0/+8
Fix ``` wireshark/epan/dissectors/file-blf.c:498:1: warning: function 'dissect_blf_lobj' is within a recursive call chain [misc-no-recursion] 498 | dissect_blf_lobj(tvbuff_t *tvb, packet_info *pinfo _U_, proto_tree *tree, gint offset_orig) { | ^ wireshark/epan/dissectors/file-blf.c:886:1: note: example recursive call chain, starting from function 'dissect_blf_next_object' 886 | dissect_blf_next_object(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset) { | ^ wireshark/epan/dissectors/file-blf.c:893:32: note: Frame #1: function 'dissect_blf_next_object' calls function 'dissect_blf_lobj' here: 893 | int bytes_parsed = dissect_blf_lobj(tvb, pinfo, tree, offset); | ^ wireshark/epan/dissectors/file-blf.c:580:27: note: Frame #2: function 'dissect_blf_lobj' calls function 'dissect_blf_next_object' here: 580 | tmp = dissect_blf_next_object(sub_tvb, pinfo, subtree, offset_sub); | ^ wireshark/epan/dissectors/file-blf.c:580:27: note: ... which was the starting point of the recursive call chain; there may be other cycles wireshark/epan/dissectors/file-blf.c:886:1: warning: function 'dissect_blf_next_object' is within a recursive call chain [misc-no-recursion] 886 | dissect_blf_next_object(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, gint offset) { | ^ ```
2024-02-20Clang-Tidy: Fixup some suppressionsGerald Combs16-24/+40
Use directory-level suppressions where needed.
2024-02-20PLDM: Fix coverity warning about version printingMartin Mathieson1-3/+3
2024-02-20Annotate short names of VP9 fields in field names.Jonathan Lennox1-17/+17
These match the names used for the filters, which are otherwise non-obvious.
2024-02-20ISIS LSP: Add a recursion checkGerald Combs1-3/+13
Fix ``` wireshark/epan/dissectors/packet-isis-lsp.c:3431:1: warning: function 'dissect_sub_clv_tlv_22_22_23_141_222_223' is within a recursive call chain [misc-no-recursion] 3431 | dissect_sub_clv_tlv_22_22_23_141_222_223(tvbuff_t *tvb, packet_info* pinfo, proto_tree *tree, | ^ wireshark/epan/dissectors/packet-isis-lsp.c:3431:1: note: example recursive call chain, starting from function 'dissect_sub_clv_tlv_22_22_23_141_222_223' wireshark/epan/dissectors/packet-isis-lsp.c:3541:21: note: Frame #1: function 'dissect_sub_clv_tlv_22_22_23_141_222_223' calls function 'dissect_sub_clv_tlv_22_22_23_141_222_223' here: 3541 | dissect_sub_clv_tlv_22_22_23_141_222_223(tvb, pinfo, subtree, local_offset, local_len); | ^ wireshark/epan/dissectors/packet-isis-lsp.c:3541:21: note: ... which was the starting point of the recursive call chain; there may be other cycles ``` Add Clang-Tidy suppressions as well.
2024-02-20GIOP: Add a recursion checkGerald Combs1-3/+25
Add Clang-Tidy suppressions as well.
2024-02-20ENRP: Add a recursion checkGerald Combs1-4/+33
Add Clang-Tidy suppressions as well.
2024-02-20add missing field for Roon DiscoveryAaron Turner1-0/+6
2024-02-20prefs: Always write main prefs fileJohn Thacker1-16/+20
If writing a separate extcap preferences file fails, always write the main preference file. If there's a directory of the same name as a module, silently ignore it. Followup to !14436
2024-02-20wsutil: Only copy configuration files that are regular filesJohn Thacker2-2/+24
If someone manually puts a directory, or a FIFO, or something else (block device?) in a configuration directory with the same name as a preference file, don't try to copy it and just silently ignore it.
2024-02-20Telnet: Include a packet summary in Info column.Darius Davis1-4/+42
2024-02-20x509sat: fix type of organizationIdentifierAlexis La Goutte2-2/+2
2024-02-20Couchbase: fix link to memcache text protocolMartin Mathieson1-1/+1
2024-02-20PLDM: rework the way the version string is generatedMartin Mathieson1-47/+37
2024-02-20CBOR: Update our recursion checksGerald Combs1-6/+12
2024-02-20BACapp: Update our recursion checksGerald Combs1-4/+24
2024-02-19Add initial Clang-Tidy configuration files and a CI checkGerald Combs14-1/+41
Add an initial Clang-Tidy configuration file which checks for recursion and various clang analyzer issues. Run Clang-Tidy in the "Clang + Code Checks" merge request job. Add NOLINT suppressions where needed in wsutil, epan, and lemon.
2024-02-19prefs: Backwards and forwards compability for hiding columnsJohn Thacker2-10/+112
Continue to write the format-based hidden preference for now. Read both preferences; if the index-based preference is read, use it. If not, fall back to the format-based preference. Followup to 41930060b04146198966e1b775c4527b70cab6f2
2024-02-19Add missing status/flags to packet-couchbase.cJim Walker1-1/+9
This commit brings the dissector up-to-date with couchbase/trinity. Change-Id: I5efa4ada0d30b2f0196c39c3c8b4a4604e811804
2024-02-19Protobuf: Add a pref for last-ditch message name to tryMartin Mathieson1-0/+13
2024-02-19x509sat: Add Organizationidentifier (2.5.4.97)Alexis La Goutte2-0/+3
2024-02-19rlcmac: Add USF to COL_INFO in DL CTRL blocksPau Espin Pedrol1-0/+2
We already do so for DL Data blocks, and it's useful as well for DL Control blocks, in order to easily follow the communication between the PCU and the scheduled TBF of each MS.
2024-02-18dfilter: Don't allow "matches" operator with FT_FRAMENUMJohn Thacker1-1/+1
The matches operator implicitly converts non-stringlike fields that have value strings to their value string value. (This is not the same as the string representation of the number, which applying the string function first would do, but it usually less useful and worse performance than using numeric comparisons.) However, FT_FRAMENUM fields have a hfinfo->strings but it is not strings used for conversion, it is an overload with the special ft_framenum_type_t, so don't convert. This prevents a segmentation fault if expressions with expressions like 'gtp.response_in ~ "test"'
2024-02-18Thrift: always generate field_id proto itemTriton Circonflexe1-4/+21
In order to report non-matching field id, the sub-dissector requires the proto_item element for the field id to be created, even if the tree is not.
2024-02-18extcap: Fix writing preferences to fileJohn Thacker2-25/+18
Do not change the preference pointer inside the Extcap Options Dialog. That changes the real preference value, which disturbs the check inside prefs_store_ext_multiple that storeValues() calls for whether a pref has changed or not. Since the prefs are already changed to their new value, we won't realize that we need to write out a new preference file. The other changes in #18487 are sufficent to fix the problem identified there (though it's a bit unclear what "required" means in combination with a default, and whether we have to send the default value for the required parameter or can omit it.) If the button says "Save", then save the preferences regardless of what the "extcap Save on Start" preference says. Fix #19639. Related to #18487
2024-02-18added copy as C Arrayvxcute2-0/+14