Commit Graph

83015 Commits

Author SHA1 Message Date
João Valverde 4448b6494e Add a ws_posix_compat.h header
Currently used to define ssize_t on platforms that lack it.

Fix some Windows build errors caused by moving the definition into a
separate header.

Fix some narrowing warnings on Windows x64 from changing the definition
of ssize_t from long int to int64_t.

The casts in dumpcap are ugly but necessary. The whole code needs
to be rewritten for portability, or the warnings disabled.
2021-12-21 01:30:06 +00:00
João Valverde 36d5aad962 wsutil: Split ws_regex_matches() into two functions
Split ws_regex_matches() into two functions with better semantics
and remove the WS_REGEX_ZERO_TERMINATED symbol.

ws_regex_matches() matches zero terminated strings.

ws_regex_matches_length() matches a string length in code units.
2021-12-21 00:40:02 +00:00
Chuck Craft 392745c56f wsdg: chapter_libraries refresh - update URL; typos 2021-12-20 07:55:46 +00:00
Alexis La Goutte 457ce59bfa mbim: Fix warnings by Cang Analyzer 2021-12-20 06:51:53 +00:00
Alexis La Goutte 3d81fd5027 mka: Fix warnings by Cang Analyzer
packet-mka.c:569:7: warning: Value stored to 'offset2' is never read [deadcode.DeadStores]
2021-12-20 06:51:53 +00:00
Jaap Keuter 4a7053e880 Documentation: simplify protocol tree function documentation intro 2021-12-20 06:50:38 +00:00
Gerald Combs e56c00e12f [Automatic update for 2021-12-19]
Update manuf, services enterprise numbers, translations, and other items.
2021-12-20 06:22:21 +00:00
João Valverde ce1dc88173 Fix stdio.h conversions to use the scanf macros 2021-12-19 23:49:55 +00:00
João Valverde dec5590b5b Fix errors found by fix-encoding-args.pl 2021-12-19 22:55:37 +00:00
João Valverde 80c9b56e7a ERSPAN Marker: Fix a pre-commit check
epan/dissectors/packet-cisco-marker.c (13 (of 13) fields)
cisco_erspan_marker.prop_header doesn't match PROTOABBREV of cisco-marker
cisco_erspan_marker.header doesn't match PROTOABBREV of cisco-marker
cisco_erspan_marker.version doesn't match PROTOABBREV of cisco-marker
cisco_erspan_marker.type doesn't match PROTOABBREV of cisco-marker
cisco_erspan_marker.ssid doesn't match PROTOABBREV of cisco-marker
cisco_erspan_marker.granularity doesn't match PROTOABBREV of cisco-marker
cisco_erspan_marker.utc_offset doesn't match PROTOABBREV of cisco-marker
cisco_erspan_marker.timestamp doesn't match PROTOABBREV of cisco-marker
cisco_erspan_marker.utc_sec doesn't match PROTOABBREV of cisco-marker
cisco_erspan_marker.utc_usec doesn't match PROTOABBREV of cisco-marker
cisco_erspan_marker.sequence_number doesn't match PROTOABBREV of cisco-marker
cisco_erspan_marker.reserved doesn't match PROTOABBREV of cisco-marker
cisco_erspan_marker.tail doesn't match PROTOABBREV of cisco-marker
2021-12-19 22:55:36 +00:00
João Valverde ca2a8e69a9 Fix a pre-commit check
epan/dissectors/packet-lwm2mtlv.c:  FT_STRING:        proto_tree_add_item(tlv_tree, hf_lwm2mtlv_value_string, tvb, valueOffset, element->length_of_value, [[ENC_UTF_8|ENC_NA]-->[ENC_UTF_8]]);
2021-12-19 21:47:31 +00:00
João Valverde 0ccd69e530 Replace g_strdup_printf() with ws_strdup_printf()
Use macros from inttypes.h.
2021-12-19 21:21:58 +00:00
João Valverde f984def50c Add g_snprintf() to checkAPIs 2021-12-19 21:04:49 +00:00
João Valverde 92b4e3277c Fix dissector -Wrestrict warnings
[31/254] Building C object epan/dissectors/CMakeFiles/dissectors.dir/packet-bssgp.c.o
/home/jpv/code/wireshark/wireshark/epan/dissectors/packet-bssgp.c: In function ‘de_bssgp_cell_id’:
/home/jpv/code/wireshark/wireshark/epan/dissectors/packet-bssgp.c:859:9: warning: ‘snprintf’ argument 4 overlaps destination object ‘add_string’ [-Wrestrict]
  859 |         snprintf(add_string, string_len, "%s, CI %u", add_string, ci);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jpv/code/wireshark/wireshark/epan/dissectors/packet-bssgp.c: In function ‘de_bssgp_rim_routing_inf’:
/home/jpv/code/wireshark/wireshark/epan/dissectors/packet-bssgp.c:2313:17: warning: ‘snprintf’ argument 4 overlaps destination object ‘add_string’ [-Wrestrict]
 2313 |                 snprintf(add_string, string_len, " %s, RNC-ID %u", add_string, rnc_id);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jpv/code/wireshark/wireshark/epan/dissectors/packet-bssgp.c: In function ‘de_bssgp_rnc_identifier’:
/home/jpv/code/wireshark/wireshark/epan/dissectors/packet-bssgp.c:2767:9: warning: ‘snprintf’ argument 4 overlaps destination object ‘add_string’ [-Wrestrict]
 2767 |         snprintf(add_string, string_len, " %s, RNC-ID %u", add_string, rnc_id);
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[85/254] Building C object epan/dissectors/CMakeFiles/dissectors.dir/packet-gsm_a_bssmap.c.o
/home/jpv/code/wireshark/wireshark/epan/dissectors/packet-gsm_a_bssmap.c: In function ‘be_cell_id_type’:
/home/jpv/code/wireshark/wireshark/epan/dissectors/packet-gsm_a_bssmap.c:1842:21: warning: ‘snprintf’ argument 4 overlaps destination object ‘add_string’ [-Wrestrict]
 1842 |                     snprintf(add_string, string_len, "%s/RNC-ID (%u)", add_string, value);
      |                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/jpv/code/wireshark/wireshark/epan/dissectors/packet-gsm_a_bssmap.c:1869:17: warning: ‘snprintf’ argument 4 overlaps destination object ‘add_string’ [-Wrestrict]
 1869 |                 snprintf(add_string, string_len, "%s/CI (%u)", add_string, value);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[137/254] Building C object epan/dissectors/CMakeFiles/dissectors.dir/packet-mswsp.c.o
/home/jpv/code/wireshark/wireshark/epan/dissectors/packet-mswsp.c: In function ‘get_name_from_fullpropspec’:
/home/jpv/code/wireshark/wireshark/epan/dissectors/packet-mswsp.c:2975:25: warning: ‘snprintf’ argument 4 overlaps destination object ‘dest’ [-Wrestrict]
 2975 |                         snprintf(dest, bufsize, "%s <INVALID>", dest);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2021-12-19 20:25:58 +00:00
João Valverde 22ee2764a7 Replace g_snprintf() with snprintf() (dissectors)
Use macros from inttypes.h with format strings.
2021-12-19 20:25:11 +00:00
João Valverde fe5248717f Replace g_snprintf() with snprintf()
Use macros from inttypes.h with format strings.
2021-12-19 20:06:13 +00:00
João Valverde c5a19582e4 epan: Convert to use stdio.h from GLib
Replace:
    g_snprintf() -> snprintf()
    g_vsnprintf() -> vsnprintf()
    g_strdup_printf() -> ws_strdup_printf()
    g_strdup_vprintf() -> ws_strdup_vprintf()

This is more portable, user-friendly and faster on platforms
where GLib does not like the native I/O.

Adjust the format string to use macros from intypes.h.
2021-12-19 19:29:53 +00:00
João Valverde 737d1dc125 Add missing header, fix macOS build 2021-12-19 19:09:05 +00:00
Martin Mathieson 3b675f0fc1 5co-legacy: fix a filter string 2021-12-19 17:39:02 +00:00
João Valverde 7160b4b177 wsutil: Use snprintf() and ws_strdup_printf()
Replace GLib I/O with C library I/O.
2021-12-19 12:23:14 +00:00
João Valverde 612c0cff60 wmem: Add ws_strdup_printf() convenience macros
The convention (for wmem) is that functions with ws_ use
malloc'ed memory. This is just a convenience to avoid having
to pass a NULL allocator.
2021-12-19 10:48:15 +00:00
João Valverde f75b79a59d Move wmem string utility functions to wsutil 2021-12-19 10:47:50 +00:00
Martin Mathieson 3319d994b5 README.heuristic: minor updates 2021-12-19 08:03:04 +00:00
John Thacker db10235d68 text_import: Handle SCTP and minimum packet lengths
Correctly handle when a minimum packet length forces fragmentation of
SCTP and we are generating dummy SCTP DATA chunk headers: mark fragmentation
in the chunk flags and set the transmission sequence number and
stream sequence number appropriately.

Port from text2pcap commit f8d48662c8
Part of #16724.
2021-12-18 22:45:02 -05:00
João Valverde 8cc527cce3 wmem: Use vasprintf()
Use vasprintf(3) if available to optimize wmem_stdup_printf().
2021-12-18 23:16:38 +00:00
Gerald Combs c9715e5ab5 GitLab CI: Switch the Windows MR job back to vanilla CMake.
After switching to Visual Studio's CMake the Windows MR builds started
failing with

    C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets(241,5): error MSB8066: Custom build for 'C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_de.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_en.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_es.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_fr.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_it.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_ja_JP.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_pl.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_ru.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_sv.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_tr_TR.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_uk.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\7345cb0fc1b52560d4d2bd48e83ff433\wireshark_zh_CN.qm.rule;C:\builds\wireshark\wireshark\build\CMakeFiles\9829b32238fa3bcc807b02099e4c1642\qtui_autogen.rule' exited with code -1073741819. [C:\builds\wireshark\wireshark\build\ui\qt\qtui_autogen.vcxproj]

This appears to be caused by
https://gitlab.kitware.com/cmake/cmake/-/issues/22014 which should be
fixed in recent versions of the official CMake distribution.
2021-12-18 21:47:43 +00:00
João Valverde 2f572659f5 Docs: Fix a README.developer code example
Remove spurious "int".

Also prefer "g_string_printf", just for stylistic reasons.
2021-12-18 21:13:20 +00:00
João Valverde 64c0e166d1 Add string.h to wireshark.h
Wireshark development requires handling strings a lot. Add this
standard header to the base environment to avoid unnecessary repetition.
2021-12-18 20:28:54 +00:00
João Valverde f19c18a299 Add wmem.h to wireshark.h
Wmem is an alternative to GLib data structures so it should
have the same scope and be equally as convenient to use.

Wmem does not and cannot depend on anything else other than
GLib.
2021-12-18 20:28:54 +00:00
João Valverde 58c297ca81 wmem_test: Add more string performance test
Add some C99 stdio.h numbers to compare with GLib on platforms
(such as Windows) where they use different implementations.

Add a wmem string test with NULL allocator, to compare wmem and GLib
performance with roughly the same memory allocation.

Use the block allocator as being more representative of normal
wmem performance, instead of using strict, that is normally
used for wmem debugging.
2021-12-18 20:13:41 +00:00
João Valverde 9465c5c28d wmem_test: Disable performance tests by default
These are not pass/fail tests, so the automation cannot
validate them. They just slow down the CI builds. To
enable pass -m perf.

I think the --verbose comment is wrong, I did not detect
any difference in output with or without --verbose.
2021-12-18 20:13:41 +00:00
João Valverde e0dba4854b Exclude wmem_test.c from pre-commit 2021-12-18 20:13:41 +00:00
João Valverde f837dae4c4 Fix wmem_test.c indentation 2021-12-18 19:39:21 +00:00
João Valverde b83f264f7d Fix wsutil/time_util.c indentation 2021-12-18 19:39:21 +00:00
João Valverde d443197097 Prefer the portable _Noreturn attribute (C11)
Use _Noreturn, available with C11, instead of vendor specific
attributes. It's not compatible with C++ so we we must keep
the old code for now.
2021-12-18 18:54:08 +00:00
Gerald Combs 2de477f499 Docs: Prefer 64-bit Windows.
Document the 64-bit Windows build options first and switch to
"Wireshark-win64" in a couple of places.
2021-12-18 17:45:03 +00:00
Martin Mathieson 4901eefaa5 README.tapping: Some minor updates 2021-12-18 14:47:57 +00:00
Martin Mathieson 62a747bae3 file-jpeg: Fix value in vals_ifd_tags_exif[] 2021-12-18 11:43:03 +00:00
Chuck Craft 136b67b85e wsdg: cleanup epub3 build warnings - anchors; TOC
Closes #17790
2021-12-18 08:20:32 +00:00
João Valverde a8acda8fcc Docs: Add more info about transitioning to C99 fixed-width types 2021-12-18 07:24:46 +00:00
Joel Colledge f4123939d1 DRBD: Tidy up choice of display base for fields
When the dissector was added, BASE_HEX_DEC was used by default for many
fields. This is often not the most appropriate display format. The
biggest change is that all fields referring to sizes in bytes now
consistently use BASE_DEC_HEX.
2021-12-18 07:06:52 +00:00
Joel Colledge 217228eece DRBD: Decode two-phase commit payloads
This part of the DRBD protocol requires some state to correctly decode.
So we use a conversation to associate the packets. This conversation
stores a map of the two-phase commit data required for decoding later
packets.
2021-12-18 07:06:52 +00:00
Joel Colledge 4a28f5704f DRBD: Use CF_FUNC with BASE_CUSTOM
This is apparently necessary to prevent compilations warnings in certain
build environments.
2021-12-18 07:06:52 +00:00
Joel Colledge 583169ce06 DRBD: Add implicit data sizes as fields
Packets such as P_DATA do not have a dedicated field containing the size
of the data. It is simply the amount of extra data in the packet. It is
useful to be able to show or filter by this value, so add it as a
separate field.

Also combine the "blksize" and "size" fields, since they have the same
meaning.

Finally, remove some duplicates of the function decode_payload_data.
2021-12-18 07:06:52 +00:00
Joel Colledge 34f5c2c344 DRBD: Decode barrier numbers and block IDs little-endian
These values are opaque handles as far as the protocol is concerned.
They are sent from some node A to B, and then back from B to A. For node
B they have no meaning other than as a handle. However, on node A they
do have meaning, so it is useful to be able to interpret them. In
practice, they are usually little-endian encoded, so decode them
accordingly.
2021-12-18 07:06:52 +00:00
Antoine Gardiol e4cd4f92f8 5co-legacy: Fix dissector unique hash computing
*** CID 1495425:  Integer handling issues  (CONSTANT_EXPRESSION_RESULT) in packet-5co-legacy.c: 765 in fiveco_hash()
2021-12-18 06:29:41 +00:00
John Thacker f89d536503 text_import: Fix direction detection in Import from Hexdump
If the first character of the preamble indicates direction, it
needs to be skipped over and not tested as part of the timestamp.
2021-12-18 00:49:42 +00:00
Pau Espin de3359fe3e IuUP: Use proto_tree_add_checksum() to show CRC Header
Use standarized API to show checksum information. This also does the
checksum validation and shows computed CRC if found incorrect, etc.
2021-12-17 23:47:06 +00:00
Pau Espin f81a64e2bf IuUP: Fix CRC Header checks
All the packets coming from a known working source (nano3g femtocell)
where being shown as containing wrong CRC Header in Wireshark.

pcap file: https://osmocom.org/attachments/download/4744/3g_call_23112021.pcapng
2021-12-17 23:47:06 +00:00
João Valverde 77f95e18ab CMake: Disable Wformat-truncation (GCC warning)
Converting from GLib functions to stdio.h turns up many of these
warnings. They are disabled to allow work to go on and until
there is consensus on how to handle them.

    -Wformat-truncation
    -Wformat-truncation=1

        Level 1 of -Wformat-truncation enabled by -Wformat employs
        a conservative approach that warns only about calls to bounded
        functions whose return value is unused and that will most likely
        result in output truncation.
2021-12-17 19:34:55 +00:00