Commit Graph

45121 Commits

Author SHA1 Message Date
John Thacker 5ef4da4d98 epan: Prevent buffer overflows in some built-in addr_to_str types
Several of the constant length string built in address types don't
check to see if the buf_len passed in is long enough to write
the string.

This can cause buffer overflows, e.g. with a custom column with
many FT_ETHER fields.
2022-07-05 21:56:54 +00:00
David Perry 88a7bf9db2 Properly free range strings, ext strings, custom base 2022-07-05 20:43:31 +00:00
David Perry 51315cf37c Fix AUTOSAR heuristic label 2022-07-05 19:19:56 +00:00
João Valverde 5e3a7e9ab8 dfilter: Small optimization for "not all zero" code
Remove extra NOT instruction. Also remove unused ANY_ZERO opcode.
2022-07-05 09:58:43 +01:00
Deepthi Mary dfa160832d Adding 9 zbee zcl frames 2022-07-05 07:25:46 +00:00
João Valverde a877f2d5f3 dfilter: Allow existence check for slices
Allow checking if a slice exists. The result is true if the
slice has length greater than zero.

The len() function is implemented as a DFVM instruction instead.
The semantics are the same.
2022-07-04 22:45:14 +00:00
João Valverde 0fc81c21b2 dfilter: Cleanup scanner value setters 2022-07-04 22:15:40 +00:00
Gerald Combs ff36056573 [Automatic update for 2022-07-03]
Update manuf, services enterprise numbers, translations, and other items.
2022-07-04 21:30:14 +00:00
Joakim Karlsson 2fe99d640f pfcp: Update to 3GPP TS 29.244 V17.5.0 2022-07-04 19:57:09 +00:00
Anders Broman fed641fc27 http: Add path components to tree 2022-07-04 17:45:08 +00:00
Uli Heilmeier 1489ea8fe6 SMPP: Initialize tvb_msg to NULL
Fixes: wireshark/wireshark#18170
2022-07-04 18:12:03 +02:00
Guy Harris 1018e39ea3 eap: add a comment asking why dissect_eap_identity_wlan() exists?
Must identity strings in EAP be dissected differently over different
protocols?
2022-07-03 23:27:40 -07:00
John Thacker 50a3ac0c18 diameter: Strengthen heuristic slightly
The Diameter message length must be a multiple of 4, something
implicitly true in RFC 3588 and make explicit in RFC 6733.
2022-07-03 21:25:57 -04:00
John Thacker d5c81ba9d8 ath: Add heuristics
Port 45564 is not IANA registered for Apache. The heartbeat
messages all start with the same 8 character ASCII delimiter
string, so use that for heuristics.
2022-07-03 14:54:56 -04:00
John Thacker d065e9ac50 Diameter: Add a heuristic dissector over TCP
Add a heuristic dissector for Diameter over TCP, disabled by default.
We shouldn't need one for Diameter over SCTP, the PPID should take
care of it.
2022-07-03 12:36:31 -04:00
João Valverde 8d93f0920a dfilter: Fix some debug strings 2022-07-02 21:21:12 +01:00
John Thacker c88107f632 diameter: Register the [D]TLS port
Port 5868 is IANA registered for Diameter over TLS/TCP and
DTLS/SCTP. Register the diameter TCP handle by name so that
it can be registered to tls.
2022-07-02 12:18:28 +00:00
John Thacker f30062b9d5 egd: Do some simple heuristics
GE Fanuc's Ethernet Global Data uses a unassigned UDP port.
Add some simple heuristics, based on the fixed first two bytes
of the message.
2022-07-02 11:25:40 +00:00
João Valverde eb8acd088e dfilter: Rename dfvm opcodes with a namespace prefix 2022-07-02 11:46:45 +01:00
João Valverde fc5c81328e dfilter: Rename test syntax tree node
Test node also includes arithmetic operations so rename it
to a generic "operator" node.
2022-07-02 11:39:17 +01:00
João Valverde b10db887ce dfilter: Remove unparsed syntax type and RHS literal bias
This removes unparsed name resolution during the semantic
check because it feels like a hack to work around limitations
in the language syntax, that should be solved at the lexical
level instead.

We were interpreting unparsed differently on the LHS and RHS.
Now an unparsed value is always a field if it matches a
registered field name (this matches the implementation in 3.6
and before).

This requires tightening a bit the allowed filter names for
protocols to avoid some common and potentially weird conflicting
cases.

Incidentally this extends set grammar to accept all entities.
That is experimental and may be reverted in the future.
2022-07-02 11:18:20 +01:00
Stig Bjørlykke 190404d66b dtls: Support Connection ID when using Block Ciphers
Add support for DTLS Connection ID when using Block Ciphers,
the MAC algorithm is different.
2022-07-01 21:31:51 +00:00
Guy Harris 0257b41167 iec104: dissect the control field as a 4-octet little-endian field.
Treat all 4 octets of the control field as a single little-endian value
divided into bitfields.  We already showed *some* subfields as
bitfields; this means we show *all* of them that way.

That makes the display more clearly show which bits in those octets
correspond to which fields.

It also fixes the dissection of the type field; we have separate
bitfields for I frames (1-bit bitfield) and S and U frames (2-bit
bitfield).

Use proto_tree_add_item_ret_uint() to fetch the values other than the
frame type value.

Fixes #18167.
2022-06-30 23:35:52 -07:00
Odysseus Yang b250224c45 MBIM: dissect SAR commands
MBIM_CID_MS_SAR_CONFIG
MBIM_CID_MS_TRANSMISSION_STATUS
2022-06-30 17:21:15 +00:00
Roland Knall b165f31cd3 gtp: Fix copy-paste error 2022-06-30 16:38:05 +02:00
John Thacker 774a7f0eee dcp-etsi: Strengthen heuristic, add for Decode As
Strengthen the DCP-ETSI (TS 102 821) heuristic from matching
two bytes to matching four bytes. Split the heuristic and
non-heuristic dissector pieces, and add the non-heuristic
dissector for Decode As.
2022-06-30 07:29:46 -04:00
Dr. Lars Völker 4a26993ec0 SOME/IP: code cleanup to reduce memory leaks 2022-06-30 04:34:22 +00:00
Moshe Kaplan 96c4c9063f packet-gtp.c: Fix copy-paste error (Coverity 1506627)
Use guaranteed uplink bitrate,
instead of max uplink bitrate, when
calculating guaranteed uplink bitrate.
Fixes Coverity 1506627 and #18164.
2022-06-30 03:03:24 +00:00
John Thacker 37d3c7add2 STUN: Check the Fingerprint (CRC32) 2022-06-29 21:57:10 -04:00
John Thacker 7f5089ba40 knxip: Add a port range preference
KNX/IP has an IANA registered port, 3671, and some other ports commonly
used but unregistered (or registered to other services). It also has
no heuristics. Add a port range preference defaulting to the registered
port.
2022-06-29 21:41:25 -04:00
John Thacker 6c16cd7cbb tplink-smarthome: Add a brief heuristic
tplink-smarthome uses a port registered by IANA to another application.
At least add a heuristic; since the message is always JSON, we
can decode and test the first two characters.
2022-06-29 19:29:22 -04:00
Moshe Kaplan 1b586a66df register.c: Avoid potential race condition (Coverity 1477510)
Wrap writing to cur_cb_name in a mutex, to avoid
potential race conditions.
Fixes Coverity 1477510.
2022-06-29 11:21:25 -04:00
Tomasz Moń 88c8bb19e5
USBLL: Dissect speed specific linktypes
USB 2.0/1.1/1.0 devices (or 3.x and newer when connected to hosts that
are not Super-Speed capable) operate at one of three speeds:
  * Low-Speed (1.5 Mbps)
  * Full-Speed (12 Mbps)
  * High-Speed (480 Mbps)

Supporting speed specific linktypes allows speed specific dissection
without the need for user to manually set the speed.
2022-06-29 05:56:03 +02:00
John Thacker d41127602a STUN: Set conversation dissector after any STUN packet
After implementing RFC 7983, the STUN dissector will reject
DTLS and [S]RTP packets even in non-heuristic mode. Since
the dissector is more discriminating, it is safe to set
the conversation dissector after receiving any valid STUN
packet, not just specifically a TURN packet.

This makes dissection work better on some captures that have
some TURN ChannelData messages along with STUN packets in
the other direction, but lack the packets that set up the
TURN Channel. In turn, that allows the Decode As setting to
be configured for RTP, which has a weaker heuristic dissector
than STUN. Fix #18148.
2022-06-28 21:51:29 -04:00
Dr. Lars Völker 487165dd50 DoIP: Support UAT for User defined payload types
This patch allows user defined payload types to have names.
2022-06-28 18:38:53 +00:00
Martin Mathieson 33031c8955 Make some variables in packet-grebonding.c static. 2022-06-28 16:51:35 +01:00
Gerald Combs eaae2d0ee7 Minor Python3 script fixups.
Make some scripts executable and use the shebang line recommended at
https://docs.python.org/3/using/unix.html#miscellaneous
2022-06-27 16:46:55 +00:00
Gerald Combs 4153af1dc7 wslua: Port make-init-lua to Python3
Port the script that creates init.lua to Python3. The generated init.lua
removes one newline and adds another, otherwise the output is identical
to the Perl version.
Ping #18152.
2022-06-27 16:28:36 +00:00
Gerald Combs ae3010cabe wslua: Port make-taps to Python3
Port the script that creates taps_wslua.c and taps.txt to Python3. The
generated taps_wslua.c has one less newline, otherwise the output is
identical to the Perl version. Make the "taps" configuration file an
ConfigParser / .ini file.
Ping #18152.
2022-06-27 16:11:34 +00:00
Roland Knall 8bdff72625 dfilter: Fix undefined dereference and add null check
A value of ref could be accessed undefined and add additional
checks to ensure, that refs_array actually contains data or return
null immediately
2022-06-27 14:57:01 +00:00
Dr. Lars Völker d562cc3033 PTP: Improved robustness on wrong 2-step flag and 1-step
This code adds more robust handling of smaller issues with PTP messages,
like a missing 2-step flag of a not quite correct implementation of
802.1AS and improves 1-step support.

Changes:
- Handle 1-step syncs in analysis.
- Handle missing 2-step flag on pDelay more robust and warn in analysis.
- Handle missing F'up TLV in 802.1AS Sync more robust and warn.
2022-06-27 13:23:27 +00:00
John Thacker 26b0a0a8d3 stun: Tighten heuristic by rejecting restricted values
Reject the previous reserved and unassigned TURN channels and
STUN methods restricted by RFC 5764 and RFC 7983 to allow
multiplexing of STUN with DTLS-SRTP (and ZRTP) on the same
addresses and ports. (As an exception, allow the special MS
Multiplex TURN channel value.) Earlier versions of the specs
had these as unassigned (or did not support TURN Channels), and
no implementation has used them.

This prevents the STUN dissector from claiming RTP packets
going to the same port as set for STUN by Decode As, and should
allow us to set the STUN dissector as the dissector for a conversation
on UDP if we see any STUN message, not just a TURN message type.
2022-06-27 08:56:44 -04:00
Jo-Philipp Wich 1433104479 IEEE1905: fix IPv6 type TLV parsing
- Declare a separate type for the IPv6 TLV MAC address, otherwise its
   filter key is `ieee1905.ipv4_type.mac_addres` instead of the expected
   `ieee1905.ipv6_type.mac_addres` one which is confusing

 - Fix label for `hf_ieee1905_ipv6_type_count` to read "IPv6 address count"
   instead of the wrong "IPv4 address count"

 - Parse the IPv6 link local address which appears between the EUI-48 and
   the IPv6 address count in IPv6 type TLVs, without that, valid IPv6 TLVs
   are wrongly parsed and reported as malformed

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
2022-06-27 11:47:57 +00:00
Dr. Lars Völker 2c9675b759 TECMP: fix typo 2022-06-27 11:31:35 +00:00
John Thacker dda4af1fc5 STUN: Update some comments 2022-06-26 15:03:23 -04:00
Gerald Combs b5e1e63dd0 [Automatic update for 2022-06-26]
Update manuf, services enterprise numbers, translations, and other items.
2022-06-26 17:40:36 +00:00
John Thacker cc52ef4d12 STUN: Fix MS-IMPLEMENTATION-VERSION value string
MS-IMPLEMENTATION-VERSION is not a duplicate of MS-VERSION, and
has a different interpretation. MS-VERSION is the version number
of MS-TURN, its values described in 2.2.2.17 of its spec, and
MS-IMPLEMENTATION-VERSION is the version of MS-ICE2, its values
described in section 3.1.5.2 of its spec.

The latter indicates whether the STUN message format must be that of
Internet-Draft behave-rfc3489bis-02 (that is, roughly the final
form of classic STUN, also used in MS-TURN) or whether that of
RFC 5389 is also supported.
2022-06-25 23:01:26 -04:00
John Thacker e49a69f361 HTTP: Add chunks as items instead of calling data dissector
HTTP chunked transfer encoding can have lots of chunks, and calling
the data dissector for each individual chunk adds a large number of
layers to the frame and doesn't really make sense. (As opposed to
calling the data dissector on the reassembled data if we can't handle
the content type, which does make sense.) In particular, this can
cause a failed assertion by adding more layers than
PINFO_LAYER_MAX_RECURSION_DEPTH.

Just add each data chunk as a FT_BYTES item. Fix #18130.
2022-06-25 20:28:10 +00:00
João Valverde efbe699756 dfilter: Remove STTYPE_RANGE_NODE
STTYPE_RANGE_NODE is just a lexical token, it is
not used withi the syntax tree so remove it.
2022-06-25 16:06:48 +01:00
João Valverde aaff0d21ae dfilter: Add layer support for references
This adds support for using the layers filter
with field references.

Before:
    $ dftest 'ip.src != ${ip.src#2}'
    dftest: invalid character in macro name

After:
    $ dftest 'ip.src != ${ip.src#2}'
    Filter: ip.src != ${ip.src#2}

    Syntax tree:
     0 TEST_ALL_NE:
       1 FIELD(ip.src <FT_IPv4>)
       1 REFERENCE(ip.src#[2:1] <FT_IPv4>)

    Instructions:
    00000 READ_TREE		ip.src <FT_IPv4> -> reg#0
    00001 IF_FALSE_GOTO	5
    00002 READ_REFERENCE_R	${ip.src <FT_IPv4>} #[2:1] -> reg#1
    00003 IF_FALSE_GOTO	5
    00004 ALL_NE		reg#0 != reg#1
    00005 RETURN

This requires adding another level of complexity to references.
When loading references we need to copy the 'proto_layer_num'
and add the logic to filter on that.

The "layer" sttype is removed and replace by a new
field sttype with support for a range. This is a nice
cleanup for the semantic check and general simplification.
The grammar is better too with this design.

Range sttype is renamed to slice for clarity.
2022-06-25 14:57:40 +01:00
João Valverde e9e6431d7b dfilter: Change boolean string representation
Use "True" or "TRUE" instead of "true" and remove case insensivity.
Same for false. This should serve to differentiate booleans a bit
more from protocol names, which should be using lower-case.
2022-06-25 13:02:34 +01:00
João Valverde 229dad6a75 X509IF: Fix duplicate filter name
Fixes #18155.
2022-06-24 21:10:45 +00:00
João Valverde 8793650707 dftest: Print ftype of protocol fields 2022-06-24 21:10:45 +00:00
João Valverde f1902c643e Regenerate ASN.1 dissectors 2022-06-24 21:10:45 +00:00
Gerald Combs 602e87d6c5 Make sure our Python scripts read and write UTF-8.
Explicitly set "encoding='utf-8'" for each of the files we read and
write in make-reg.py and generate_authors.py.
2022-06-24 11:08:37 -07:00
Moshe Kaplan 26f87b3250 wslua: Port epan/wslua/make-reg.py to Python3
Port the script that creates
declare_wslua.h and register_wslua.c
to Python3.
Ping #18152.
2022-06-24 15:02:38 +00:00
Jim Young a9bcbaf738 DNS: Note and dissect any extraneous payload bytes 2022-06-24 08:04:40 +00:00
Eelco Chaudron e79630f1d9 Frame: Fix segmentation dump when parsing packet_verdict
This change fixes a segmentation fault core dump in tshark/Wireshark
when loading a pcapng file that contains the packet verdict option.

This problem got introduced in the commit mentioned below.

Fixes: 030b06ba3c ("pcapng: write packet and Netflix custom blocks the same as other blocks.")
Signed-off-by: Eelco Chaudron <echaudro@redhat.com>
2022-06-24 00:02:29 +00:00
Thomas Vogt 95b01dc4bf GREbond: Add support for Huawei's GRE bonding (RFC8157) control protocol
This dissector is for the control messages of the GRE bonding protocol by
Huawei. These messages are encapsulated in GRE and can appear on both/all
bonding links.

During development, I made heavy use of traffic for Deutsche Telekom Hybrid
service. There fore, it also supports the first version which did not have an
IEEE assigned ethertype.
2022-06-23 19:40:25 +00:00
Dr. Lars Völker 181a7c7d7d Signal-PDU: Fix performance degradation on config switch
By adding signal aggregation the time to change profiles changed
dramatically. This is due to unregistering header fields being a very
slow operation and for aggregation each signal line did not lead to 2
but to 5 hfs.

Unregistering header fields for 150k signal example config (debug build):
- 3.6: 	 50s
- 3.7: 	592s (9:52!!!)

This patch brings the time back to 50s, if no aggregation is configured.
2022-06-23 19:24:17 +00:00
João Valverde d7322e757e epan: Use host byte order with AT_NUMERIC
Use host byte-order with AT_NUMERIC to make it more generic
and practical.

Change openSAFETY to pass addresses in host byte-order (the
previous code assumed they were in little-endian).

Plus a few cleanups.
2022-06-23 16:58:07 +01:00
Roland Knall 0079058837 openSAFETY: Define broadcast address globaly 2022-06-23 16:34:07 +02:00
Joerg Mayer 342af4727d Cisco Mis-Cabling Protocol: Support strict mode PDUs
Content of the new Type is still to be determined.
Also hack around an unsolved "mystery".
2022-06-23 12:09:10 +02:00
Roland Knall 4c768f54a7 epan: Make AT_NUMERIC behave more safely
Implement a better handling of byte sizes as well as preventing
possible memory bleeds

Fixes: 18147
2022-06-23 11:00:51 +02:00
Chuck Craft 39fc49b792 wsdg: escape tick marks after backtick; fix typo 2022-06-22 18:55:27 -05:00
Gerald Combs 3b0d9194bc Docs: Update the ftype description list in wireshark-filter(4).
Update a couple of ftype descriptions and update the list in the
wireshark-filter man page.
2022-06-21 14:33:45 -07:00
Pau Espin 4c22ff6bdb GTP: Several fixes and improvements to QoS IE GBR & MBR fields
The previous output was missing some fields under some conditions, and
some output text was wrong. This ended up in big confusion when looking
at the fields. Let's add the missing fields, fix the existing ones and
provide better formatting of the strings to understand which exact field
provides the info.
2022-06-21 18:35:30 +00:00
João Valverde 354e0d7edf dfilter: Add support for unicode escape sequences
Add support for entering unicode codepoints as \uNNNN or \uNNNNNNNN
for strings and charconsts (following the C standard).
2022-06-21 16:54:16 +01:00
João Valverde 47348ae598 dfilter: Add support for literal strings with null bytes
Before:
    Filter: frame matches "abc\x00def"
    dftest: \x00 (NUL byte) cannot be used with a regular string.
    	frame matches "abc\x00def"
    	                  ^~~~
    Filter: _ws.ftypes.string == "a string with a \0 byte"
    dftest: \0 (NUL byte) cannot be used with a regular string.
    	_ws.ftypes.string == "a string with a \0 byte"
    	                                      ^~

After:
    Filter: frame matches "abc\x00def"

    Syntax tree:
     0 TEST_MATCHES:
       1 FIELD(frame)
       1 PCRE(abc\0def)

    Instructions:
    00000 READ_TREE		frame -> reg#0
    00001 IF_FALSE_GOTO	3
    00002 ANY_MATCHES	reg#0 matches abc\0def
    00003 RETURN

    Filter: _ws.ftypes.string == "a string with a \0 byte"

    Syntax tree:
     0 TEST_ANY_EQ:
       1 FIELD(_ws.ftypes.string)
       1 FVALUE("a string with a \0 byte" <FT_STRING>)

    Instructions:
    00000 READ_TREE		_ws.ftypes.string -> reg#0
    00001 IF_FALSE_GOTO	3
    00002 ANY_EQ		reg#0 == "a string with a \0 byte" <FT_STRING>
    00003 RETURN

Fixes issue #16156.
2022-06-21 15:10:08 +00:00
João Valverde cbd3c44776 ftypes: Add FT_UINT_STRING to IS_FT_STRING() macro 2022-06-20 20:35:47 +01:00
João Valverde e42a4de47c ftypes: Fix an error message 2022-06-20 17:55:56 +00:00
João Valverde 0615ba6317 ftypes: Make accessor functions type safe 2022-06-20 17:29:57 +00:00
Andoni Diaz de Cerio 0cadfff04a MCPTT: Fix dissection of FC Reject Phase field
ETSI TS 24.380 section 8.2.3.4 specifies that:
"The <Reject Phrase> value is a text string encoded the text string
in the SDES item CNAME as specified in IETF RFC 3550."

This does not mean that SDES tipe and length files are necessary,
only applies in the enconding of the text string.
2022-06-20 15:24:00 +00:00
Martin Mathieson 17f5e15fcc DCT2000: call dissectors for R16 RRC 2022-06-20 11:16:18 +00:00
Orgad Shaneh 0bc756c2c0 TPNCP: Simplify size tracking
This also fixes a crash when tpncp.dat is missing the events part.
2022-06-19 17:26:40 +00:00
Gerald Combs 058fe0dd09 [Automatic update for 2022-06-19]
Update manuf, services enterprise numbers, translations, and other items.
2022-06-19 16:40:16 +00:00
Gerald Combs efe8dc051c Prefs: Change the default UI layout to type "2".
Make the default UI layout "packet list on top, packet detail and bytes
side by side". This is more space efficient on modern displays and is
the first thing I change when using the default profile.
2022-06-18 12:36:18 +00:00
John Thacker 41cd2fed9c BSSGP: Correct BBSGP -> BSSGP in a few places 2022-06-17 22:03:49 -04:00
John Thacker 9319394af1 MEGACO: Reset bracket counters after a Topology Descriptor
After parsing a Topology Descriptor at the start of a request
or reply command, reset the left and right bracket counters
before going back to the top of the loop to parse the next
command, just like how done at the end of the while loop with
a normal command.

Prevents marking as malformed packets which have a Topology Descriptor
followed by a single command (e.g. Move) without any trailing
descriptors, and hence no more left brackets.
2022-06-17 12:52:13 +00:00
Roland Knall 972a7950f2 openSAFETY: Adding conversation handler code 2022-06-17 13:23:52 +02:00
Roland Knall 300befc12a epan: Numeric address type
Add a numeric address type analog to StringZ for
protocols who only use numeric values as addresses
with no further handling.

e.g. IAT protocols which only enumerate the devices
2022-06-17 08:56:05 +00:00
John Thacker 3e012e2a87 epan: Finish converting endpoint_by_id to elements
Since the endpoint_by_id code uses elements and not the old
endpoint structure, it shouldn't set pinfo->use_endpoint to
TRUE when creating, and it should check if pinfo->conv_elements
is NULL, not pinfo->conv_endpoint.
2022-06-16 20:59:52 -04:00
Pascal Quantin 1bd24bb95d RTCP: ensure that at least two bytes are captured for heuristic checks
Fixes #18136
2022-06-16 03:28:31 +00:00
Dr. Lars Völker a159fe125e SIGNAL-PDU: Fixing memory leak in Signal List UAT 2022-06-16 02:59:10 +00:00
Gtker 60efc1a1c0 woww: Change SMSG_AUTH_RESPONSE result field size from 4 to 1
I somehow mistook the size of this field for a u32 instead of a u8
earlier.

vmangos clearly shows that it's a u8:
cd896d4371/src/game/World.cpp (L322)

and cmangos:
98a53ea30d/src/game/Server/WorldSession.cpp (L947)
2022-06-16 02:42:52 +00:00
Jeremy McCormick 9b08b02d8e a615a: don't parse exception timer if A1
Trying to parse LUS and LNS files if the protocol version
was "A1" led to them being marked as a malformed packets.
THis is because protocol version A1 LUS and LNS files do
not have the exception timer field. So to fix it, we check if
the protocol version is not A1, and only if it isn't do we try to
parse the exception timer field.
2022-06-16 02:29:37 +00:00
Gerald Combs 572e6b0c10 Docs: Add some protocols to the release notes. 2022-06-15 11:49:40 -07:00
Adrian Granados a664d29978 ieee80211: Update reason codes as in IEEE Std 802.11-2020 and 802.11ax-2021 2022-06-15 07:06:35 +00:00
Chuck Craft 208cf56b75 ip: ip.flags field are 3 high bits not full byte
See https://ask.wireshark.org/question/27546/0x01-flag-on-last-of-fragmented-packets/
2022-06-14 20:28:17 +00:00
John Thacker f1cbc6b662 epan: Remove fragment_get_reassembled()
Because completed reassemblies are hashed in the reassembled_table for
all the frame numbers that contributed fragments,
fragment_get_reassembled_id() works wherever fragment_get_reassembled()
does, and also works where the fragment id is not the frame number.

However, since the reassembled_table hash key only depends on the
fragment id and the frame number, it only allows a frame to have
one reassembly with a given fragment id. Some protocols can have
more than one reassembly with a given fragment id (that differ on
addresses or other keys), such as GSM SMS, and the wrong reassembly
is retrieved on the second pass in those cases.

For this reason, we might want to add additional key elements to
reassembled_table, such as layer number. fragment_get_reassembled_id
already takes packet_info as a parameter and can accommodate that
without further changes, but fragment_get_reassembled cannot, so
remove the latter in favor of the former.
2022-06-14 00:59:34 +00:00
John Thacker 47c418d419 tftp: Handle TFTP servers that don't switch ports
If we get into the dissect_tftp call, we must have either matched
a WRQ/RRQ at some point and created a wildcarded UDP conversation,
or we matched the TFTP port. While it is contrary to the spirit
of RFC 1350 for the server not to switch ports, it basically works
and the port is IANA assigned, so it doesn't do harm to process these.
In the heuristic dissector, of course, we don't do this.

The conversation code doesn't automatically fill in wildcarded
ports for UDP (since it's connectionless), and the wildcarded
find_conversation call in the TFTP dissector was twisted around
so it didn't actually fill in the second port before anyway.
Filling in the server port would make sense, but then the necessary
logic to find the right conversations would be more complicated.
(The default find_conversation logic prefers any conversation with
both ports to a wildcarded conversation, but the TFTP dissector would
then want the most recent conversation, whether wildcarded or with
both ports.)

These packets were handled prior to the 3.6 changes. Fix #18122
2022-06-14 00:36:27 +00:00
Andoni Diaz de Cerio 1ec1422318 MCPTT: Fix dissection of Track Info field
Unlike most of the FC fields, Track info participant type string file
padding is not considered in the dissector. This causes that all the FC
message dissection fails the string contains padding.

According to ETSI TS 24.380 Section 8.2.3.13:
If the length of the <Participant Type> value is not a multiple
of 4 bytes, the <Participant Type> value is padded to a
multiple of 4 bytes. The value of the padding bytes is set to zero.
The padding bytes are ignored by the receiver.
2022-06-13 19:08:07 +00:00
John Thacker 16af26dcc2 gsm_sms: Display reassembled unpacked 7-bit GSM SM with that encoding
Use the proper encoding instead of ENC_ASCII when displaying the
individual parts of a reassembled unpacked 7-bit GSM alphabet
SM, just as when displaying each fragment.
2022-06-13 12:50:41 +00:00
John Thacker 1301c033b4 SMPP: Handle decoding packed 7-bit GSM with UDH correctly
SMPP only has the number of octets of the message payload, but
with packed 7-bit GSM with a UDH, there are fill bits after the
UDH before the message (to align the message start with a septet
boundary), and we need to calculate the number of septets.
2022-06-13 12:27:36 +00:00
John Thacker 01f9dcbb7b tftp: Fix spelling 2022-06-12 14:37:40 +00:00
John Thacker 4277d24fa1 smpp: Handle TLV and UDH parameters for text and subdissection
Handle UDH-like information (ports and fragmentation info) that is sent
in TLVs instead of in a UDH, passing to to the gsm_sms_ud dissector.
Allow message_payload TLV to substitute for short_message when allowed.
Warn with expert info when both fields are present.
Skip over a UDH, if present, when converting the short message to text
using the encoding.
Fix #2161.

Use protocol data to reduce the amount of parameters passed back and
forth.

replace_sm can have a TLV (message_payload) (at least in 5.0), so
check for that.
2022-06-12 14:19:19 +00:00
Roland Knall a807047b95 Qt: Adapt sorting for traffic tables
Improve sorting for the traffic tables
2022-06-12 14:53:23 +02:00
DarienSpencer65 58ee7bf6ee AT: Implement CMGL command (binary mode) 2022-06-12 09:29:33 +00:00
Triton Circonflexe 1e8beaa245 Add support for UUID type in Thrift
Closes #18125
2022-06-12 08:56:25 +00:00
John Thacker 1d09a9a4fb gsm_sms: Don't let header be included twice 2022-06-11 09:31:50 -04:00