Commit Graph

3627 Commits

Author SHA1 Message Date
Guy Harris 3fe96028d2 Add a comment to explain a cast done in file_fdopen(). 2021-10-18 16:22:33 -07:00
Nardi Ivan a2e877d397 wiretap: fix a warning on Raspberry 4
/home/pi/wireshark/wiretap/file_wrappers.c: In function ‘file_fdopen’:
/home/pi/wireshark/wiretap/file_wrappers.c:1136:27: error: comparison of integer expressions of different signedness: ‘__blksize_t’ {aka ‘long int’} and ‘unsigned int’ [-Werror=sign-compare]
         if (st.st_blksize <= MAX_READ_BUF_SIZE)
                           ^~
cc1: all warnings being treated as errors
2021-10-18 22:23:33 +00:00
Stig Bjørlykke bb0b4ad4b3 eNode-B: Fix check for eri_enb_log_magic
Files not having the eri_enb_log_magic should not be opened as a
eNode-B raw log file format.
2021-10-13 12:06:44 +02:00
Anders Broman eb9ae2ffd5 Read eNode-B raw logs 2021-10-04 16:08:27 +00:00
John Thacker e05f704606 wiretap: camins, vwr: Stop heuristics after 1GiB
Very large 64 bit files are supported, so the CAM Inspector and
Ixia Veriwave heuristics, which are fairly weak and either always
(CAM Inspector) or possibly (Veriwave) try to read the entire file
should stop their heuristics and make a decision after some reasonable
length.

Without this, the GUI freezes for seconds, minutes, or even hours
by merely clicking on a large file in the file chooser, as
wtap_open_offline attempts to determine the file type. The same issue
occurs in capinfos, captype, tshark, editcap, etc.

In addition, previously the CAM Inspector heuristics could give the wrong
result on very large files, because 10 * invalid_pairs could overflow
its guint32 and then end up comparing as less than valid_pairs.

Fix #17620
2021-10-03 20:01:37 +00:00
João Valverde 5362d0c31b ws_getopt: Rename struct and macros
This is part of the API and should also be renamed to avoid conflicts.
2021-09-30 13:59:28 +00:00
Stig Bjørlykke 96cfaf67a3 Qt: Reload Lua FileHandler when having a capture file
Support reloading a Lua FileHandler when this is in use for a
loaded capture file. Prompt to save the file if having unsaved
changes because the file must be reloaded.

Fixes #17615
2021-09-30 11:07:08 +00:00
Guy Harris 92d77cef7a libwiretap: fix test for built-in file types.
The file type/subtype for built-in types are <=
wtap_num_builtin_file_types_subtypes - the plugin types are given
type/subtype values after the last built-in type/subtype value.

Fixes #17614.
2021-09-25 14:09:41 -07:00
Erik Rigtorp 4ebd927ccd Support LZ4 versions earlier than 1.8.0 2021-09-15 19:09:30 +00:00
Guy Harris 9fcc11cc9b blf: report a bunch of errors. 2021-09-12 01:21:31 -07:00
Guy Harris fdf2d78d9a blf: most reads in a packet are errors even if they get an EOF.
If the *first* read for a packet gets an EOF, it means that there is an
EOF right at the point where you're reading, which means "no more
packets".

If you get an EOF on any *subsequent* reads for the packet, it means the
file was cut off in the middle of the packet's record, which is an error.
2021-09-12 00:47:07 -07:00
Guy Harris b6d1806053 blf: remove the function name from ws_debug() calls.
ws_debug() inserts the file name, line number, and function name into
the ws_debug() message (assuming the function name can be obtained from
a macro), so there's no need to include it in the text of the message
(we don't do so elsewhere).
2021-09-12 00:07:55 -07:00
Guy Harris 89368f9d28 blf: do more work in blf_init_rec().
Set the block, presence flags, capture length, and length there.
2021-09-11 18:48:55 -07:00
Guy Harris 5aad28d773 blf: use common code to read the log object header. 2021-09-11 17:04:23 -07:00
John Thacker 6fe68991df wiretap: Add zstd and lz4 as WTAP compression types
This has a few effects on the behavior of wtap_get_compression_type()
and wtap_get_all_compression_type_extensions():

Make capinfos correctly report the compression type (instead of
saying gzip compressed for zstd and lz4 compressed files).

Makes files with the .zstd and .lz4 extension show up in the file
chooser when "Files of type" is set to something other than "All Files",
such as "All Capture Files" or "Wireshark/... pcapng"

Makes the UI not default to gzip compression when saving a file
compressed as zstd or lz4 (write support for zstd and lz4 doesn't
exist yet, and the GUI doesn't have hooks for it anyway, though
this can help as a prerequisite for later support for writing.)

Also replace a couple of assert() with ws_assert().

Update the PURPOSE in CMakeLists for zstd and lz4 to note that they
can be used to read compressed capture files.
2021-09-11 22:37:25 +00:00
Guy Harris 8307d5d9be blf: fix indentation.
Fix indentation of a while() clause, so that it's indented less than the
body of the while() loop.
2021-09-11 14:27:48 -07:00
Guy Harris 8b614c6a1c blf: make blf_read_block() static.
It's not used outside blf.c.
2021-09-11 13:23:18 -07:00
Guy Harris 76b08ea083 Fix spelling errors.
The Ubuntu build commented on some spelling errors in executable code
files.  Fix the errors that don't come from external files containing
the spelling errors (USB product and vendor IDs, PCI IDs, ASN.1
specifications), and fix some errors that don't show up in the
executable code files (e.g., in comments and variable names).
2021-09-11 10:01:27 +00:00
Guy Harris dee79a0c81 wtap_opttypes: move more if_filter and packet_verdict stuff together.
As we did in earlier changes.
2021-09-09 15:12:05 -07:00
Dr. Lars Völker be7b4163de BLF: Adding LIN support
This patch adds support for LIN Messages in BLF.
2021-09-09 09:19:36 +00:00
Guy Harris a4a571e680 wtap_opttypes: move the specialized options after the custom options.
Move the if_filter and packet_verdict option stuff after the custom
option stuff in various places.

Fix some comments while we're at it.
2021-09-09 01:33:47 -07:00
Guy Harris 58d053923e pcapng: clean up block length checks.
Use the same style of message for too-short block errors ("pcapng: total
block length XXX of {a,an} XXX is too small...").

Add an additional check for the "skip" Netflix cutom block, to make sure
it has enough room for the 4-byte "skipped" value.
2021-09-09 00:19:36 -07:00
Nardi Ivan 197b67cf8c Fix two memory leaks on ZSTD and LZ4 decompression 2021-09-08 21:08:41 +00:00
Pascal Quantin 98faf05b6b file_wrappers.c: use LZ4 if the library is 1.7.3 or later 2021-09-07 21:40:44 +02:00
Alexis La Goutte 5fc6549178 pcapng: Fix Branch condition evaluate to a garbage value
wblock->internal is not initialized on pcapng_read_custom_block function
pcapng.c:3747:9: warning: Branch condition evaluates to a garbage value [core.uninitialized.Branch]
2021-09-07 05:56:36 +00:00
Alexis La Goutte 7740e9ae27 pcapng(wiretap): Fix Dead Store found by Clang Analyzer
pcapng.c:2675:5: warning: Value stored to 'opt_cont_buf_len' is never read [deadcode.DeadStores]
2021-09-06 04:21:14 +00:00
Alexis La Goutte 203e082a50 nettrace_3gpp (wiretap): Fix Dead Store found by Clang Analyzer
nettrace_3gpp_32_423.c:256:2: warning: Value stored to 'prev_pos' is never read [deadcode.DeadStores]
nettrace_3gpp_32_423.c:295:2: warning: Value stored to 'next_msg_pos' is never read [deadcode.DeadStores]
nettrace_3gpp_32_423.c:487:4: warning: Value stored to 'port_type_defined' is never read [deadcode.DeadStores]
2021-09-06 04:21:14 +00:00
Tomas Kukosa dde6fde173 Vector BLF: add WLAN interface name 2021-09-03 05:03:48 +00:00
Tomas Kukosa bf1039a529 Vector BLF: WLAN frame supported 2021-09-03 05:03:48 +00:00
Guy Harris 7083e70842 Remove an out-of-date comment.
(It appears gsize/gssize are now the same size as size_t, even on 64-bit
Windows, i.e. they're long longs on 64-bit Windows.)
2021-09-02 15:33:55 -07:00
Dario Lombardo 2e9f33fe09 file_wrapper: fix compilation without LZ4. 2021-09-02 15:17:05 +00:00
Guy Harris e998a4cc02 Clean up handling of buffer size/offset/etc. types.
Use guint for them, and don't let the buffer sizes get bigger than 2^30,
so they all fit in a guint.
2021-09-02 02:14:28 -07:00
Erik Rigtorp 341a9d099c Fix build for debian and macOS 2021-09-01 23:16:59 +02:00
Erik Rigtorp 5844c469f0 Add support for ZSTD and LZ4 decompression
- Describe zstd and lz4 support in man pages
- Update AUTHORS
- Update mime types to recognize zstd and lz4
2021-09-01 20:59:07 +02:00
Guy Harris 030b06ba3c pcapng: write packet and Netflix custom blocks the same as other blocks.
Use compute_options_size() to get the total size of all the options, and
use write_options() to write out the options for those blocks, as we do
for other blocks.

Get rid of wtap_block_option_get_value_size() and
wtap_block_get_options_size_padded(); they're no longer needed, and
their notion of an option's "size" is "size in a pcapng file", so that
doesn't belong in code that's intended to support all file types.
2021-08-30 16:29:04 -07:00
Guy Harris 510c088ce6 ngsniffer: fix a routine name.
That routine now only processes frame records; call it
process_frame_record().
2021-08-30 20:45:52 +00:00
Guy Harris dcfa3ec835 ngsniffer: clean up the read process.
Have a routine to read the Sniffer record header, and call that in
ngsniffer_read() and ngsniffer_seek_read().  Only call
ngsniffer_process_record() for frame records that we understand, so that
we only allocate a block for those rather than for records we don't
understand or for EOF records, potentially leaking them.
2021-08-30 12:47:38 -07:00
Guy Harris 3cb6403a4c wiretap: always allocate a block for a record.
Without that, you could add a comment to a record in a file format the
reading code for which doesn't allocate blocks, but the comment doesn't
get saved, as there's no block in which to save the comment option.

This simplifies some code paths, as we're either using the record's
modified block or we're using the block as read from the file, there's
no third possibility.

If we attempt to read a record, and we get an error, and a block was
allocated for the record, unreference it, so the individual file readers
don't have to worry about it.
2021-08-29 19:12:13 -07:00
Guy Harris dd8c23c83d pcapng: remove include of wtap_opttypes.h.
It's already included by wtap/wtap.h, which this file includes, and it
doesn't need to be included that early, so that #include isn't
necessary.
2021-08-29 01:00:02 -07:00
Guy Harris 07416c01dc peektagged: set rec->block right after rec->rec_type.
That's how it's done in other files, and the two are somewhat connected
(the record type and block type are somewhat correlated).
2021-08-29 00:33:22 -07:00
Guy Harris 266d707dff pcapng: whitespace and other cleanups.
Remove some extra blank lines, add a blank line where it belongs, and
get rid of a stray #-only line.
2021-08-28 22:29:21 -07:00
Guy Harris 10be4d1611 pcapng: fix handling of byte-swapped sysdig event blocks.
We weren't setting wblock->rec->rec_header.syscall_header.nparams for
byte-swapped event blocks.
2021-08-28 16:00:41 -07:00
Guy Harris 9b132c2353 pcapng: fix output of comment and DNS server name options.
Copy to the buffer the string value, not the structure that contains it.
2021-08-27 18:14:02 -07:00
Guy Harris 5536ca319a wtap_opttypes: fix a typo. 2021-08-27 12:54:02 -07:00
Guy Harris 4b7bfe35c5 pcapng: process uint32 options like uint64 options.
Move the extraction of the option value from the option content from the
callers of pcapng_process_uint32_option() to
pcapng_process_uint32_option() itself.
2021-08-27 08:58:13 +00:00
Guy Harris a21972d6b9 pcapng: remove some old code left behind by the previous change. 2021-08-27 00:33:09 -07:00
Guy Harris 8acd0d1151 pcapng: export routines to do the option-section processing.
That way, add-on modules to handle block types not handled by the core
pcapng code can use pcap_process_options() to process a block's options
and can use the routines to handle the "standard" option value types to
handle particular options.

Also, allow both everything-is-little-endian and
everything-is-big-endian Custom Block types in pcap_process_options().
2021-08-27 06:48:47 +00:00
Michael Tuexen b17f354304 Add initial support for BBLog files 2021-08-27 04:48:21 +02:00
Dr. Lars Völker 0091a83e31 BLF: adding Interface blocks (bugfix)
This patch adds code to add the interface blocks, so that the packets
read by blf can be written again (e.g., to pcapng).
2021-08-23 21:19:29 +02:00
Dr. Lars Völker 5de353f324 BLF: WTAP_BLOCK_PACKET should have been MULTIPLE_BLOCKS_SUPPORTED 2021-08-23 20:30:12 +02:00