summaryrefslogtreecommitdiffstats
path: root/usr.sbin/tcpdump/print-gtp.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/tcpdump/print-gtp.c')
-rw-r--r--usr.sbin/tcpdump/print-gtp.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/usr.sbin/tcpdump/print-gtp.c b/usr.sbin/tcpdump/print-gtp.c
index c1c295d02cb..c21db86fe1e 100644
--- a/usr.sbin/tcpdump/print-gtp.c
+++ b/usr.sbin/tcpdump/print-gtp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: print-gtp.c,v 1.12 2020/05/20 01:20:37 dlg Exp $ */
+/* $OpenBSD: print-gtp.c,v 1.13 2020/10/26 23:19:18 jca Exp $ */
/*
* Copyright (c) 2009, 2010 Joel Sing <jsing@openbsd.org>
*
@@ -927,6 +927,11 @@ gtp_v1_print(const u_char *cp, u_int length, u_short sport, u_short dport)
/* Header length is a 4 octet multiplier. */
hlen = (int)p[0] * 4;
+ if (hlen == 0) {
+ printf(" [Invalid zero-length header %u]",
+ nexthdr);
+ goto trunc;
+ }
TCHECK2(p[0], hlen);
switch (nexthdr) {