From: hannes Date: Wed, 27 Apr 2005 23:15:27 +0000 (+0000) Subject: boundary check for authentication header X-Git-Tag: tcpdump-3.9.1~77 X-Git-Url: https://git.tcpdump.org/tcpdump/commitdiff_plain/c3157b19b7735ce3a38b02cfe7f70df8050ed596 boundary check for authentication header --- diff --git a/print-bfd.c b/print-bfd.c index f3264d4e..dc356889 100644 --- a/print-bfd.c +++ b/print-bfd.c @@ -15,7 +15,7 @@ #ifndef lint static const char rcsid[] _U_ = - "@(#) $Header: /tcpdump/master/tcpdump/print-bfd.c,v 1.5.2.1 2005-04-27 23:01:38 hannes Exp $"; + "@(#) $Header: /tcpdump/master/tcpdump/print-bfd.c,v 1.5.2.2 2005-04-27 23:15:27 hannes Exp $"; #endif #ifdef HAVE_CONFIG_H @@ -247,7 +247,9 @@ bfd_print(register const u_char *pptr, register u_int len, register u_int port) printf("\n\t Required min Echo Interval: %4u ms", EXTRACT_32BITS(bfd_header->required_min_echo_interval)/1000); if (bfd_header->flags & BFD_FLAG_AUTH) { - bfd_auth_header = (const struct bfd_auth_header_t *)(pptr + sizeof (const struct bfd_header_t)); + pptr += sizeof (const struct bfd_header_t); + bfd_auth_header = (const struct bfd_auth_header_t *)pptr; + TCHECK2(*bfd_auth_header, sizeof(const struct bfd_auth_header_t)); printf("\n\t%s (%u) Authentication, length %u present", tok2str(bfd_v1_authentication_values,"Unknown",bfd_auth_header->auth_type), bfd_auth_header->auth_type,