aboutsummaryrefslogtreecommitdiff
path: root/sf-pcapng.c
diff options
context:
space:
mode:
Diffstat (limited to 'sf-pcapng.c')
-rw-r--r--sf-pcapng.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sf-pcapng.c b/sf-pcapng.c
index 52f795f7..2881da34 100644
--- a/sf-pcapng.c
+++ b/sf-pcapng.c
@@ -32,6 +32,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <limits.h> /* for INT_MAX */
#include "pcap-int.h"
@@ -1047,8 +1048,7 @@ pcap_ng_check_header(const uint8_t *magic, FILE *fp, u_int precision,
}
done:
- p->snapshot = idbp->snaplen;
- if (p->snapshot <= 0) {
+ if (idbp->snaplen == 0 || idbp->snaplen > INT_MAX) {
/*
* Bogus snapshot length; use the maximum for this
* link-layer type as a fallback.
@@ -1058,7 +1058,8 @@ done:
* unsigned int.
*/
p->snapshot = max_snaplen_for_dlt(idbp->linktype);
- }
+ } else
+ p->snapshot = idbp->snaplen;
p->linktype = linktype_to_dlt(idbp->linktype);
p->linktype_ext = 0;