Commit Graph

84505 Commits

Author SHA1 Message Date
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 d372ed3483 wsutil/str_util: Escape string API extensions
Allow to specify the length instead of requiring a null terminated
string.

Add a function to escape embedded null bytes in a counted string.
2022-06-21 15:10:07 +00:00
Roland Knall 847795d381 Qt: Add stream number to conversations
Adding the stream id to UDP/TCP conversations and allowing
filtering on those values as well.

Fixes: #14184
2022-06-21 10:01:18 +02:00
João Valverde e89784a577 Fix Debian symbols 2022-06-20 20:24:06 +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
Gisle Vanem 992e9f93aa Revert "A small for for the Doxygen warning:"
This reverts commit 2faa7bc3132a4a0b5679231f2f9ac5a988d45084
2022-06-20 09:56:54 +00:00
Gisle Vanem 1aa9a52a44 A small for for the Doxygen warning:
capture/airpcap.h:906: warning: end of file while inside a group

Since the syntax should be `/**@}*/` (or `/*!@}*/` works too.
2022-06-20 09:56:54 +00:00
Roland Knall e046877ad1 Qt: Fix column hiding for traffic model
Instead of letting the model do the filtering and having
a bunch of exceptions in cases where columns are hidden
in between other columns, the model will present all columns
all the time, and it is the job of a top-level proxy to
filter out columns not required for current display
2022-06-20 10:21:37 +02: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
Roland Knall 2b4878d452 Qt: Hide columns for traffic tree
Allow columns to be hidden for the traffic tree dialogs
Conversations and Endpoints and store the information profile
specific
2022-06-19 16:39:35 +02:00
Roland Knall f75f577579 Qt: Fix TrafficTree typo
And also fix some prototypes
2022-06-19 11:21:53 +02: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
Gerald Combs 79310ebbd2 Qt: Remove our idle dissection wait period.
Set our idle dissection single-shot timer to 0, i.e. whenever the Qt
event loop can fit us in. This fixes a performance issue here with
libsinsp and doesn't appear to cause any issues otherwise.
2022-06-17 10:18:19 -07:00
Gerald Combs 5db7ddb209 ui: Add Logwolf software updates.
Set Logwolf information in the Appcast URL template as needed.
2022-06-17 16:31:44 +00:00
João Valverde e11c7559a8 plugins.example: Fix an installation path 2022-06-17 16:35:20 +01:00
Roland Knall b3fd206822 Qt: Sort tap list initially
By sorting the list of taps, the initial sorting is kept also
for the tab order
2022-06-17 13:06:21 +00: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 c5aa352ad4 docbook: Adapt releasenotes for openSafety and AT_NUMERIC
[skip ci]
2022-06-17 13:57:12 +02:00
Roland Knall 972a7950f2 openSAFETY: Adding conversation handler code 2022-06-17 13:23:52 +02:00
Roland Knall 83e420913d Qt: Implement sort model for traffic type list 2022-06-17 13:22:22 +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
Roland Knall bd6808c4a0 Qt: Fix missing includes
On some compiler variations an error can occur due to missing
glib.h include
2022-06-16 08:12:29 +02:00
John Thacker 4d57854294 ethercat: Fix EEPROM Ctrl/Status bitmask fields
When the field width was corrected by commit
b240d5baa0, the masks got messed
up. There's 4 reserved bits that don't have fields and the bits
are in Little Endian order. Fix #18132.
2022-06-16 03:51:59 +00: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
John Thacker 2efe338b2e Qt: Use a combobox for Decode As selectors if there are packet values
Don't require there to be at least two values in a packet for
a dissector table in order to have a combobox instead of a single
text box.

While perhaps having an editable combobox with only one drop down
option looks a bit funny, that is outweighed by the UI advantages
of being able to easily select the values that occur in the packet.

This makes it possible to change the dissector for the currently
selected packet's IP protocol or Ethertype when those are not the
last protocol layer without having to type it in manually, for
example.
2022-06-16 03:15:08 +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
Chuck Craft d008708552 editcap/mergecap: swap 'v'|'V' options to match other CLI utilities
Closes #18134
2022-06-16 02:13:50 +00:00
Gerald Combs 572e6b0c10 Docs: Add some protocols to the release notes. 2022-06-15 11:49:40 -07:00
Gerald Combs 022ebb106a GitLab CI: Fix our documentation globs
The correct glob pattern for a directory and its subdirectories is
"**/*". Use that in the change rules for the Documentation job.
2022-06-15 10:26:36 -07:00
João Valverde a1f36f06f6 Fix a sentence in AUTHORS file 2022-06-15 07:28:41 +00: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
João Valverde 05074f3e96 Add two more acknowledgements for external projects we use
Move an acknowledgement to authors section where it belongs.

Add two missing acknowledgements.

Refresh the AUTHORS file.
2022-06-15 07:26:21 +01:00
João Valverde c5b47cb839 Qt: Remove some bogus entries from Authors list
Some lines in Acknowledgements are mistakenly matching the regular
expression to capture authors and email addresses, resulting in
bogus authors entries.

Stop matching authors after we reach the Acknowledgements section.
This matches the structure of the AUTHORS-SHORT file and fixes the
bogus entries.
2022-06-15 06:46:50 +01:00
Roland Knall 1272b62106 Docs: Update documentation for redesigned Traffic Tabs
Update the documentation to document the change of features
that happen during the redesign of the UI as well as fix some
wordings in the data model.
2022-06-14 21:33:26 +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
Roland Knall 4f283e9ef8 Qt: Fix Qt6 compile warnings for traffic tabs
Some conversions are warning, that qsizetype is implicitly
converted, this fixes that
2022-06-14 22:10:31 +02:00
Roland Knall a4f25e5115 Qt: Redesign TrafficTree Dialogs UI
The new UI should better group functionality and as well as better
showing which taps are available and can be used.
2022-06-14 09:36:30 +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
Uli Heilmeier 9d17919f2a WSUG: Typo
Add a missing comma
2022-06-13 16:47:26 +00:00