aboutsummaryrefslogtreecommitdiffstats
path: root/file.c
AgeCommit message (Collapse)AuthorFilesLines
2019-12-20Use g_file_open_tmp within create_tempfileMichael Mann1-1/+0
Much better to use a known library than create it ourselves. Also remove get_tempfile_path as it's not used. Bug: 15992 Change-Id: I17b9bd879e8bdb540f79db83c6c138f8ee724764 Reviewed-on: https://code.wireshark.org/review/34420 Reviewed-by: Tomasz Moń <desowin@gmail.com> Petri-Dish: Tomasz Moń <desowin@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Roland Knall <rknall@gmail.com>
2019-08-14Wiretap: Fix temporary filename memory corruptionTomasz Moń1-2/+2
The pointer returned by create_tempfile() must not be freed. As the wtap_dump_open_tempfile() callers are freeing the returned filename, duplicate the string so it can be freed. Bug: 15377 Change-Id: Ib0b23aaee748ef67600ef3f7d40610ebbbec721c Reviewed-on: https://code.wireshark.org/review/34272 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2019-07-17file: remove use of g_get_current_timePeter Wu1-39/+18
Replace g_get_current_time by g_get_monotonic_time (since GLib 2.28, we require 2.32) to simplify code and ignore time jumps. Qt does not need the elapsed time, so remove the parameter from the progress callback. Change-Id: Icaad4b909b9cb4bb07d28fcdf3d383d64aa00127 Reviewed-on: https://code.wireshark.org/review/33975 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Reviewed-by: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-04-17Only do the read loop in the TRY block.Guy Harris1-26/+25
That's slightly less arbitrary. Change-Id: Ie505a5d128f00ae3a1d9280ab076e483a85e2be3 Reviewed-on: https://code.wireshark.org/review/32881 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-04-15Hava a routine to read the currently-selected frome.Guy Harris1-15/+15
Have cf_read_current_record() take a capture_file as an argument and read, into its wtap_rec and Buffer for the currently-selected frame, information for the currently-selected frame. Rename cf_read_record_r() to cf_read_record(). That gives us 1) a routine that reads the currently-selected frame into the wtap_rec and Buffer for the currently-selected frame and 2) a routine that reads an arbitrary frame into the wtap_rec and Buffer supplied to it. If you *want* the currently-selected record, use the former, otherwise use the latter. Change-Id: If6bd5915dd5bc18334d7b89859822a19234153a4 Reviewed-on: https://code.wireshark.org/review/32858 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-04-11Use a local buffer for rescanning and finding records.Guy Harris1-55/+83
We use one in all the other loop-over-all-records operations, such as retapping, saving, printing/writing dissections, etc.; these are the only ones remaining. Change-Id: Ib854e3a3dfb5c4b05ae103998046f4bd11c39e7e Reviewed-on: https://code.wireshark.org/review/32819 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-04-08Consistently use NULL when setting current_frame.Guy Harris1-1/+1
Change-Id: I17cf2b341f096d4a3de835c01ad50309483a9e39 Reviewed-on: https://code.wireshark.org/review/32784 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-04-08Use a single wtap_rec and Buffer for an entire capture session.Guy Harris1-18/+7
That way we aren't allocating memory, reading packets from a batch, and freeing the memory for each batch of packets delivered by dumpcap; we do the allocation when the capture starts and the freeing when it finishes. Change-Id: If012ab865f3a99d869535ad10827ad8680c1b10c Reviewed-on: https://code.wireshark.org/review/32766 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-04-06Explicitly make cf->{rec,buf} the information for the selected packet.Guy Harris1-2/+24
Move it next to other capture_file fields for the currently-selected packet, add a comment indicating that's what all those fields are for, separate them from the following fields that *aren't* for the currently-selected field, and explicitly use them in cf_select_packet(). Also add a comment about why we're waiting until the end to free up the old cf->edt in cf_select_packet() and cf_unselect_packet(). Change-Id: I1653af06eeb4ebe1131bc08bcaa2dc639932c7fa Ping-Bug: 15683 Reviewed-on: https://code.wireshark.org/review/32764 Reviewed-by: Peter Wu <peter@lekensteyn.nl> Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-04-061514 is a better initial Buffer size than 1500.Guy Harris1-7/+7
Ethernet packets without the CRC are 1514 bytes long, not 1500 bytes long; using 1514 bytes will avoid a reallocation for a full-sized Ethernet packet. Change-Id: Ie8da3f13bf3df07e23e4478b7dcf84f06dec6a9d Reviewed-on: https://code.wireshark.org/review/32761 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-04-06Revert "Get rid of the per-capture_file wtap_rec and Buffer."Peter Wu1-91/+74
This reverts commit 9445403f9558901dc54c88754ff21795ea1803f3. cf_select_packet frees the buffer backing the dissection result (cf->edt) which results in use-after-frees when callers try to access the contents. See for example this call trace: * PacketList::selectionChanged * cf_select_packet(cap_file_, row) * frameSelected(row) -> ByteViewTab::selectedFrameChanged * addTab(source_name, get_data_source_tvb(source)) get_data_source_tvb returns the buffer that backs the dissection and must remain valid even after dissection has completed. If this is not done, then a possibly expensive redissection must be done in order to populate the byte view. The temporary memory savings are not worth it. Bug: 15683 Change-Id: Ia5ec2c7736cdebbac3c5bf46a4e2470c9236262d Reviewed-on: https://code.wireshark.org/review/32758 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-04-05Get rid of the per-capture_file wtap_rec and Buffer.Guy Harris1-74/+91
Most code that reads from a capture_file already has its own wtap_rec and Buffer; change the remaining ones to do so as well. Change-Id: I9b7c136642bbb375848c37ebe23c9cdeffe830c3 Reviewed-on: https://code.wireshark.org/review/32732 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-04-05Pass Buffer pointers in some more instances.Guy Harris1-21/+25
Change-Id: I07c7f101dbf3507f30a119ab9506378e0fb53d6f Reviewed-on: https://code.wireshark.org/review/32730 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-04-05Pass Buffer pointers rather than packet data pointers in some more cases.Guy Harris1-6/+4
Change-Id: I35299464560aff2785a52217d4052da3ffedcd6a Reviewed-on: https://code.wireshark.org/review/32729 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-04-05Have wtap_read() fill in a wtap_rec and Buffer.Guy Harris1-19/+43
That makes it - and the routines that implement it - work more like the seek-read routine. Change-Id: I0cace2d0e4c9ebfc21ac98fd1af1ec70f60a240d Reviewed-on: https://code.wireshark.org/review/32727 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-04-04Use "buf" for Buffer pointers, "pd" for raw packet data pointers.Guy Harris1-5/+5
Change-Id: I3e7067e84653aa6e71052cdcea98c2305bd663e3 Reviewed-on: https://code.wireshark.org/review/32720 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-04-04epan: Convert our PROTO_ITEM_ macros to inline functions.Gerald Combs1-1/+1
Convert our various PROTO_ITEM_ macros to inline functions and document them. Change-Id: I070b15d4f70d2189217a177ee8ba2740be36327c Reviewed-on: https://code.wireshark.org/review/32706 Reviewed-by: Gerald Combs <gerald@wireshark.org> Petri-Dish: Gerald Combs <gerald@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-01-25Fix memory ownership when using cf_get_packet_commentPeter Wu1-1/+2
cf_get_packet_comment already has one code path that returns duplicated memory. Be sure to document the requirement to free this memory and adjust Qt to avoid memory leaks. Be firm and assume that wth.opt_comment is owned by wth, so duplicate it before returning it from cf_get_packet_comment. Change-Id: I91f406296c9db5ea21b90fc2e108c37de4528527 Ping-Bug: 7515 Reviewed-on: https://code.wireshark.org/review/31712 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Vasil Velichkov <vvvelichkov@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-01-18wiretap,file.c: ensure DSBs are reapplied on redissectionPeter Wu1-0/+12
After redissection, the TLS dissector did not remember the DSB secrets anymore. Since the secrets callback is only invoked on the sequential read in wtap, be sure to reapply the existing DSBs to the new session. Bug: 15252 Change-Id: I125f095acb8d577c2439a10e3e65c8b3cfd976b9 Reviewed-on: https://code.wireshark.org/review/31584 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-01-03file: remove redundant cast.Dario Lombardo1-1/+1
Found by clang-tidy. Change-Id: I58c11e09ed89e99457635dd843311ce3cf3c6bae Reviewed-on: https://code.wireshark.org/review/31334 Petri-Dish: Dario Lombardo <lomato@gmail.com> Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-01-03epan: use json_dumper for json outputs.Dario Lombardo1-3/+6
They include -Tjson, -Tjsonraw, -Tek. Change-Id: Ib3d700482ce5c29727c3f778cc3c46a1bf7756c4 Reviewed-on: https://code.wireshark.org/review/31000 Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2018-12-27Try to squeeze some bytes out of the frame_data structure.Guy Harris1-33/+33
Make the time stamp precision a 4-bit bitfield, so, when combined with the other bitfields, we have 32 bits. That means we put the flags at the same structure level as the time stamp precision, so they can be combined; that gets rid of an extra "flags." for references to the flags. Put the two pointers next to each other, and after a multiple of 8 bytes worth of other fields, so that there's no padding before or between them. It's still not down to 64 bytes, which is the next lower power of 2, so there's more work to do. Change-Id: I6f3e9d9f6f48137bbee8f100c152d2c42adb8fbe Reviewed-on: https://code.wireshark.org/review/31213 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-11-20Add new Secrets API and allow TLS to use pcapng decryption secretsPeter Wu1-0/+2
Add a new secrets API to the core, one that can outlive the lifetime of a single capture file. Expose decryption secrets from wiretap through a callback and let the secrets API route it to a dissector. Bug: 15252 Change-Id: Ie2f1867bdfd265bad11fc58f1e8d8e7295c0d1e7 Reviewed-on: https://code.wireshark.org/review/30705 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-11-16Use an enum for compression types in various interfaces.Guy Harris1-12/+14
This: 1) means that we don't have to flag the compression argument with a comment to indicate what it means (FALSE doesn't obviously say "not compressed", WTAP_UNCOMPRESSED does); 2) leaves space in the interfaces in question for additional compression types. (No, this is not part 1 of an implementation of additional compression types, it's just an API cleanup. Implementing additional compression types involves significant work in libwiretap, as well as UI changes to replace "compress the file" checkboxes with something to indicate *how* to compress the file, or to always use some other form of compression). Change-Id: I1d23dc720be10158e6b34f97baa247ba8a537abf Reviewed-on: https://code.wireshark.org/review/30660 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-11-16Use the dump parameters structure for non-pcapng-specific stuff.Guy Harris1-19/+23
Use it for all the per-file information, including the per-file link-layer type and the per-file snapshot length. Change-Id: Id75687c7faa6418a2bfcf7f8198206a9f95db629 Reviewed-on: https://code.wireshark.org/review/30616 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2018-11-13Don't have _ng versions of the dumper open routines.Guy Harris1-8/+8
Have the routines always take a parameters pointer; pass either null or a pointer to an initialized-to-nothing structure in cases where we were calling the non-_ng versions. Change-Id: I23b779d87f3fbd29306ebe1df568852be113d3b2 Reviewed-on: https://code.wireshark.org/review/30590 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-11-12wiretap: refactor common parameters for pcapng dump routinesPeter Wu1-22/+16
Four variants of wtap_dump_open_ng exists, each of them take the same three parameters for the SHB, IDB and NRB blocks that has to be written before packets are even written. Similarly, a lot of tools always create these arguments based on an existing capture file session (wth). Address the former duplication by creating a new data structure to hold the arguments. Address the second issue by creating new helper functions to initialize the parameters based on a wth. This refactoring should make it easier to add the new Decryption Secrets Block (DSB). No functional change intended. Change-Id: I42c019dc1d48a476773459212ca213de91a55684 Reviewed-on: https://code.wireshark.org/review/30578 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2018-09-29Define the wtap_rec next to the Buffer.Guy Harris1-1/+1
They are used together; put them together. Change-Id: I13ec1f37a9a141d3717bfde4db6f1b7e501fb794 Reviewed-on: https://code.wireshark.org/review/29928 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-08-22Fixed a bug related to epan initializationAdam Morrison1-5/+5
In various places, <program>_epan_new was called before setting the provider, so the wth field was null. This fix is necessary for the next commit, adding Secrets Description Block, as it uses this field. Change-Id: Ice8ee01c56b3e04fc71d7b2c659d9635cb366951 Reviewed-on: https://code.wireshark.org/review/28868 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-08-01No need to tell the BER dissector the file name for RFC 7468 files.Guy Harris1-2/+1
It's just a hack for "raw BER data" files, giving them a file name that includes the OID to use for the syntax. For RFC 7468 files, the syntax is determined from the label in the pre-encapsulation boundary. Change-Id: Ia656f20f123d2c6a85041f83714a3a1cfefb70b1 Reviewed-on: https://code.wireshark.org/review/28916 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-07-10If we explicitly started a new page, print a column header line if necessary.Guy Harris1-0/+7
Change-Id: I9be7b41ce5ec5ece502035d0ca7c0fbb3eb3b37d Ping-Bug: 14960 Reviewed-on: https://code.wireshark.org/review/28672 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-07-06Plug extension list leak.Guy Harris1-1/+2
Change-Id: Ie3d2d5fb76ca5de2488e270771b94f7374a8838f Reviewed-on: https://code.wireshark.org/review/28640 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-07-06Fix the calculation of a file's "basename".Guy Harris1-0/+46
Strip off only extensions that correspond to file types we know about; QFileInfo::baseName() strips off *all* extensions, where "extension" is "anything preceded by a .", so it turns foo.bar.pcap.gz into foo, not foo.bar. We don't want that; instead, we strip off only those extensions that correspond to file types we know how to read, so we'd strip off .pcap.gz in foo.bar.pcap.gz, and strip off .pcap in foo.bar.pcap, leaving foo.bar in both cases. Change-Id: I5385921ad2f0fef815d52e9902fef15735fd9dae Reviewed-on: https://code.wireshark.org/review/28636 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-07-03file: add more sanity checks to detect UI/file loading issuesPeter Wu1-0/+18
As "cf_read" and "rescan_packets" can end up calling back to the GUI code, that could destroy "cf->epan" which could result in use-after-free crashes. While I can find most issues with ASAN, it would be even better to detect the destructive action in "cf_close". Change-Id: I72700a60c6786d153c2aaa8478bfdfb16a01dcda Ping-Bug: 10870 Reviewed-on: https://code.wireshark.org/review/28542 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-07-03Qt: fix crash on opening a capture file while loading/saving anotherPeter Wu1-0/+9
Closing a capture file while it is being loaded will result in a crash. As a workaround, disallow closing the capture file. The requested action (e.g. MainWindow::openCaptureFile) will be silently ignored. While at it, protect process_specified_records (called when saving files) similarly to cf_read and fix a crash that occurs when a capture from the Capture Dialog is started while a file is being loaded: file.c:360:cf_close: assertion failed: (cf->state != FILE_READ_IN_PROGRESS) Bug: 10870 # moving rapidly between large files in a file set Bug: 13594 # start capture while loading/saving file Bug: 14351 # open another file while loading file Change-Id: I6ce8f3163c3fa4869f0299e49909a32594326ce4 Reviewed-on: https://code.wireshark.org/review/28541 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-07-03file: fix packet list update after dfilter change during live capturePeter Wu1-3/+24
During live captures, "cf->state==FILE_READ_IN_PROGRESS" holds and as such setting "cf->redissection_queued" from "cf_filter_packets" will prevent the packet list from being updated (no new packets are added and display filter changes are not applied). Fix this by not checking "cf->state" and instead perform an explicit check to detect the "update_progress_dlg" issue (see original commit). As "cf->read_lock" is implied by "cf->redissecting", remove that check as well (see "rescan_packets"). Print a warning instead of aborting in "cf_read" since I am not sure if that condition is currently prevented by its callers. Bug: 14918 Change-Id: Ieb7d1ae3cbeef18f17c850ae3778822ee625dc68 Fixes: v2.9.0rc0-1110-g8e07b778f6 ("file: do not perform recursive redissections to avoid crashes") Reviewed-on: https://code.wireshark.org/review/28538 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-06-28file: do not perform recursive redissections to avoid crashesPeter Wu1-7/+55
When packets are being read (in "cf_read") or rescanned/redissected (in "rescan_packets"), it could call "update_progress_dlg". That could end up accepting GUI actions such as changing profiles (which triggers a redissection via "cf_redissect_packets") or changing the display filter (which triggers another "rescan_packets" via "cf_filter_packets"). Such recursive calls waste CPU and in case of "cf_redissect_packets" it also causes memory corruption (since "cf->epan" is destroyed while "cf_read" tries to read and process packets). Fix this by delaying the rescan/redissection when an existing rescan is pending. Abort an existing rescan/redissection if a new redissection (due to profile changes) or rescan (due to display filter changes) is requested and restart this to ensure that the intended user action is applied (such as a new display filter). Bug: 14918 Change-Id: I646730f639b20aa9ec35306e3f11bf22f5923786 Reviewed-on: https://code.wireshark.org/review/28500 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-05-25Qt: fix use-after-free on error while saving exported packetsPeter Wu1-0/+1
When an error occurs while saving packets using the Export Specified Packets dialog (e.g. try to overwrite the opened capture file), the dialog is displayed again. As PacketRangeGroupBox freed the packet selection range, a crash (use-after-free) occurs. Removes some unnecessary code in MainWindow::exportDissections as well. Change-Id: I63898427eff7e71799d89c8a22246db8f93a9ff6 Fixes: v2.5.0rc0-968-g38b40acb2d ("Qt: fix a memory leak when exporting packets") Reviewed-on: https://code.wireshark.org/review/27695 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-05-24Qt: Support search without a selected packetStig Bjørlykke1-106/+105
Support doing Find Packet, search for next/previous marked packet and search for next/previous time reference without having a packet selected in the packet list. Change-Id: I648b26365385d98155e905cda270e9e785b9f1da Reviewed-on: https://code.wireshark.org/review/27752 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-05-16Eliminate some unneeded header checks.Guy Harris1-3/+1
sys/stat.h and sys/types.h date back to V7 UNIX, so they should be present on all UN*Xes, and we're assuming they're available on Windows, so, unless and until we ever support platforms that are neither UN*Xes nor Windows, we don't need to check for them. Remove the CMake checks for them, remove the HAVE_ values from cmakeconfig.h.in, and remove all tests for the HAVE_ values. Change-Id: I90bb2aab37958553673b03b52f4931d3b304b9d0 Reviewed-on: https://code.wireshark.org/review/27603 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-05-15wiretap: Add a reader for files in the PEM-like format specified by RFC 7468Роман Донченко1-1/+2
Change-Id: I8109025120d01c915f3a9d5550aa9272ec83893a Reviewed-on: https://code.wireshark.org/review/27334 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
2018-04-17Remove some GTK+-only code.Gerald Combs1-31/+1
Change-Id: Ic2498c7acd6a1a522be45094148402ee34a6b4d1 Reviewed-on: https://code.wireshark.org/review/26958 Reviewed-by: Gerald Combs <gerald@wireshark.org> Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-02-09Generalize wtap_pkthdr into a structure for packet and non-packet records.Guy Harris1-133/+98
Separate the stuff that any record could have from the stuff that only particular record types have; put the latter into a union, and put all that into a wtap_rec structure. Add some record-type checks as necessary. Change-Id: Id6b3486858f826fce4b096c59231f463e44bfaa2 Reviewed-on: https://code.wireshark.org/review/25696 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-02-08replace SPDX identifier GPL-2.0+ with GPL-2.0-or-later.Dario Lombardo1-1/+1
The first is deprecated, as per https://spdx.org/licenses/. Change-Id: I8e21e1d32d09b8b94b93a2dc9fbdde5ffeba6bed Reviewed-on: https://code.wireshark.org/review/25661 Petri-Dish: Anders Broman <a.broman58@gmail.com> Petri-Dish: Dario Lombardo <lomato@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-02-08Get rid of a calculation whose result is not used.Guy Harris1-7/+0
Change-Id: Ic481636d35953476b26be15d169f22e6db149828 Reviewed-on: https://code.wireshark.org/review/25676 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-02-05Speak of records, not packets.Guy Harris1-1/+1
Not everything wtap_read() returns is a packet. Change-Id: I3784bbfa308da52f4c55db2a90f9b55f8bfbb2ef Reviewed-on: https://code.wireshark.org/review/25617 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-01-30file.c: Fix read from array index out of bounds.Jakub Zawadzki1-1/+1
callback_args.col_widths[] is allocated only for visible columns, use 'visible_col_count' index instead of 'i' one, which is incremented only for visible columns. Found by clang. Change-Id: I4e3c05fd372585295e3a0d7427497a46f32f93bb Reviewed-on: https://code.wireshark.org/review/25444 Petri-Dish: Jakub Zawadzki <darkjames-ws@darkjames.pl> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-01-19file: free memory on exit (found by clang).Dario Lombardo1-1/+3
Change-Id: I8d57ae2f6aa114f64d7cd11ca63ce6ae88fd4b68 Reviewed-on: https://code.wireshark.org/review/25385 Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net>
2018-01-18file: stop printing packets if 0 columns are asked (found by clang).Dario Lombardo1-0/+4
This prevents a 0 bytes memory allocation (line 2383/4) and its subsequent dereference (line 2399). Change-Id: Ie88293699a55b9b48afe23d7371798e709bc1eaa Reviewed-on: https://code.wireshark.org/review/25351 Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2018-01-02Add columns (_ws.col) to output formats json, ek, pdmlMerlin Chlosta1-2/+2
Bug: 13020 Change-Id: Ia83797a4e390be7cc59a9718735edc1c7f9a5712 Reviewed-on: https://code.wireshark.org/review/24928 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>