tcpdump.c : move snaplen test

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

tcpdump.c : move snaplen test

Denis Fondras
Hi,

In tcpdump.c, at line 471 :

        i = pcap_snapshot(pd);
        if (snaplen < i) {
                warning("snaplen raised from %d to %d", snaplen, i);
                snaplen = i;
        }

is only useful when reading a pcap file. In other cases, pd->snapshot = snaplen
(set in priv_pcap_live()).

Here is a diff to move this test closer to priv_cap_offline.

Index: tcpdump.c
===================================================================
RCS file: /cvs/src/usr.sbin/tcpdump/tcpdump.c,v
retrieving revision 1.90
diff -u -p -r1.90 tcpdump.c
--- tcpdump.c 26 May 2019 22:42:42 -0000 1.90
+++ tcpdump.c 9 Jun 2019 17:52:50 -0000
@@ -449,6 +449,12 @@ main(int argc, char **argv)
  netmask = 0;
  if (fflag != 0)
  error("-f and -r options are incompatible");
+
+ i = pcap_snapshot(pd);
+ if (snaplen < i) {
+ warning("snaplen raised from %d to %d", snaplen, i);
+ snaplen = i;
+ }
  } else {
  if (device == NULL) {
  device = pcap_lookupdev(ebuf);
@@ -467,11 +473,6 @@ main(int argc, char **argv)
  localnet = 0;
  netmask = 0;
  }
- }
- i = pcap_snapshot(pd);
- if (snaplen < i) {
- warning("snaplen raised from %d to %d", snaplen, i);
- snaplen = i;
  }
 
  if (Lflag) {