summaryrefslogtreecommitdiff
path: root/wiretap/wtap.h
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2017-06-04 18:58:40 -0700
committerGuy Harris <guy@alum.mit.edu>2017-06-05 08:40:56 +0000
commit43369543fb8d9119a095d2722ff977597e0ad581 (patch)
tree037883a0eac51cff92892b1a59e72a00109b0428 /wiretap/wtap.h
parent2a776cd7f7f8fb427a109be4a77a7784961e393b (diff)
downloadwireshark-43369543fb8d9119a095d2722ff977597e0ad581.tar.gz
Allow bigger snapshot lengths for D-Bus captures.
Use WTAP_MAX_PACKET_SIZE_STANDARD, set to 256KB, for everything except for D-Bus captures. Use WTAP_MAX_PACKET_SIZE_DBUS, set to 128MB, for them, because that's the largest possible D-Bus message size. See https://bugs.freedesktop.org/show_bug.cgi?id=100220 for an example of the problems caused by limiting the snapshot length to 256KB for D-Bus. Have a snapshot length of 0 in a capture_file structure mean "there is no snapshot length for the file"; we don't need the has_snap field in that case, a value of 0 mean "no, we don't have a snapshot length". In dumpcap, start out with a pipe buffer size of 2KB, and grow it as necessary. When checking for a too-big packet from a pipe, check against the appropriate maximum - 128MB for DLT_DBUS, 256KB for everything else. Change-Id: Ib2ce7a0cf37b971fbc0318024fd011e18add8b20 Reviewed-on: https://code.wireshark.org/review/21952 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Guy Harris <guy@alum.mit.edu> (cherry picked from commit d0865fd619454a9ac06b1c7d287dc438aff50bb0) Reviewed-on: https://code.wireshark.org/review/21955
Diffstat (limited to 'wiretap/wtap.h')
-rw-r--r--wiretap/wtap.h14
1 files changed, 9 insertions, 5 deletions
diff --git a/wiretap/wtap.h b/wiretap/wtap.h
index ee68a8eabe..ca58afb9c9 100644
--- a/wiretap/wtap.h
+++ b/wiretap/wtap.h
@@ -375,11 +375,15 @@ extern "C" {
/* if you add to the above, update wtap_tsprec_string() */
/*
- * Maximum packet size we'll support.
- * 262144 is the largest snapshot length that libpcap supports, so we
- * use that.
- */
-#define WTAP_MAX_PACKET_SIZE 262144
+ * We support one maximum packet size for most link-layer header types
+ * and another for D-Bus, because the maximum packet size for D-Bus
+ * is 128MB, and that's a lot bigger than the 256KB that we use elsewhere.
+ * We don't want to write out files that specify a maximum packet size of
+ * 128MB if we don't have to, as software reading those files might
+ * allocate a buffer much larger than necessary, wasting memory.
+ */
+#define WTAP_MAX_PACKET_SIZE_STANDARD 262144
+#define WTAP_MAX_PACKET_SIZE_DBUS (128*1024*1024)
/*
* "Pseudo-headers" are used to supply to the clients of wiretap