diff options
Diffstat (limited to 'pcap-libdlpi.c')
-rw-r--r-- | pcap-libdlpi.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/pcap-libdlpi.c b/pcap-libdlpi.c index d2386d79..21ee11e8 100644 --- a/pcap-libdlpi.c +++ b/pcap-libdlpi.c @@ -137,6 +137,17 @@ pcap_activate_libdlpi(pcap_t *p) goto bad; } + /* + * Turn a negative snapshot value (invalid), a snapshot value of + * 0 (unspecified), or a value bigger than the normal maximum + * value, into the maximum allowed value. + * + * If some application really *needs* a bigger snapshot + * length, we should just increase MAXIMUM_SNAPLEN. + */ + if (p->snapshot <= 0 || p->snapshot > MAXIMUM_SNAPLEN) + p->snapshot = MAXIMUM_SNAPLEN; + /* Enable promiscuous mode. */ if (p->opt.promisc) { retv = dlpromiscon(p, DL_PROMISC_PHYS); |