blob: fd7648f6e7b66d9ec6e90587a54d39b5781af8ed (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
Index: contrib/tcpdump/interface.h
diff -u contrib/tcpdump/interface.h:1.4.2.1 contrib/tcpdump/interface.h:1.4.2.1.6.1
--- contrib/tcpdump/interface.h:1.4.2.1 Thu Jul 26 15:30:00 2001
+++ contrib/tcpdump/interface.h Fri Jul 12 06:29:47 2002
@@ -132,8 +132,16 @@
extern const u_char *packetp;
extern const u_char *snapend;
-/* True if "l" bytes of "var" were captured */
-#define TTEST2(var, l) ((u_char *)&(var) <= snapend - (l))
+/*
+ * True if "l" bytes of "var" were captured.
+ *
+ * The "snapend - (l) <= snapend" checks to make sure "l" isn't so large
+ * that "snapend - (l)" underflows.
+ *
+ * The check is for <= rather than < because "l" might be 0.
+ */
+#define TTEST2(var, l) (snapend - (l) <= snapend && \
+ (const u_char *)&(var) <= snapend - (l))
/* True if "var" was captured */
#define TTEST(var) TTEST2(var, sizeof(var))
|