aboutsummaryrefslogtreecommitdiff
path: root/contrib/tcpdump/print-igrp.c
diff options
context:
space:
mode:
authorGleb Smirnoff <glebius@FreeBSD.org>2017-02-01 20:26:42 +0000
committerGleb Smirnoff <glebius@FreeBSD.org>2017-02-01 20:26:42 +0000
commit3340d77368116708ab5b5b95acf6c9c710528300 (patch)
tree811e83fd724dc565485db80039bf234ece065b10 /contrib/tcpdump/print-igrp.c
parent151139ad9e119116ae3692d0b8dd13baf691d55e (diff)
parentd79b843cb78484ea27f877f1541055e1a6a5a4d3 (diff)
downloadsrc-3340d77368116708ab5b5b95acf6c9c710528300.tar.gz
src-3340d77368116708ab5b5b95acf6c9c710528300.zip
Update tcpdump to 4.9.0.
It fixes many buffer overflow in different protocol parsers, but none of them are critical, even in absense of Capsicum. Security: CVE-2016-7922, CVE-2016-7923, CVE-2016-7924, CVE-2016-7925 Security: CVE-2016-7926, CVE-2016-7927, CVE-2016-7928, CVE-2016-7929 Security: CVE-2016-7930, CVE-2016-7931, CVE-2016-7932, CVE-2016-7933 Security: CVE-2016-7934, CVE-2016-7935, CVE-2016-7936, CVE-2016-7937 Security: CVE-2016-7938, CVE-2016-7939, CVE-2016-7940, CVE-2016-7973 Security: CVE-2016-7974, CVE-2016-7975, CVE-2016-7983, CVE-2016-7984 Security: CVE-2016-7985, CVE-2016-7986, CVE-2016-7992, CVE-2016-7993 Security: CVE-2016-8574, CVE-2016-8575, CVE-2017-5202, CVE-2017-5203 Security: CVE-2017-5204, CVE-2017-5205, CVE-2017-5341, CVE-2017-5342 Security: CVE-2017-5482, CVE-2017-5483, CVE-2017-5484, CVE-2017-5485 Security: CVE-2017-5486
Notes
Notes: svn path=/head/; revision=313048
Diffstat (limited to 'contrib/tcpdump/print-igrp.c')
-rw-r--r--contrib/tcpdump/print-igrp.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/contrib/tcpdump/print-igrp.c b/contrib/tcpdump/print-igrp.c
index fbb313427c72..b6eaf3120110 100644
--- a/contrib/tcpdump/print-igrp.c
+++ b/contrib/tcpdump/print-igrp.c
@@ -21,15 +21,16 @@
* Initial contribution from Francis Dupont (francis.dupont@inria.fr)
*/
-#define NETDISSECT_REWORKED
+/* \summary: Interior Gateway Routing Protocol (IGRP) printer */
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
-#include <tcpdump-stdinc.h>
+#include <netdissect-stdinc.h>
-#include "interface.h"
-#include "extract.h" /* must come after interface.h */
+#include "netdissect.h"
+#include "extract.h"
/* Cisco IGRP definitions */
@@ -65,7 +66,7 @@ struct igrprte {
#define IGRP_RTE_SIZE 14 /* don't believe sizeof ! */
static void
-igrp_entry_print(netdissect_options *ndo, register struct igrprte *igr,
+igrp_entry_print(netdissect_options *ndo, register const struct igrprte *igr,
register int is_interior, register int is_exterior)
{
register u_int delay, bandwidth;
@@ -103,12 +104,12 @@ static const struct tok op2str[] = {
void
igrp_print(netdissect_options *ndo, register const u_char *bp, u_int length)
{
- register struct igrphdr *hdr;
- register u_char *cp;
+ register const struct igrphdr *hdr;
+ register const u_char *cp;
u_int nint, nsys, next;
- hdr = (struct igrphdr *)bp;
- cp = (u_char *)(hdr + 1);
+ hdr = (const struct igrphdr *)bp;
+ cp = (const u_char *)(hdr + 1);
ND_PRINT((ndo, "igrp:"));
/* Header */
@@ -130,15 +131,15 @@ igrp_print(netdissect_options *ndo, register const u_char *bp, u_int length)
while (length >= IGRP_RTE_SIZE) {
if (nint > 0) {
ND_TCHECK2(*cp, IGRP_RTE_SIZE);
- igrp_entry_print(ndo, (struct igrprte *)cp, 1, 0);
+ igrp_entry_print(ndo, (const struct igrprte *)cp, 1, 0);
--nint;
} else if (nsys > 0) {
ND_TCHECK2(*cp, IGRP_RTE_SIZE);
- igrp_entry_print(ndo, (struct igrprte *)cp, 0, 0);
+ igrp_entry_print(ndo, (const struct igrprte *)cp, 0, 0);
--nsys;
} else if (next > 0) {
ND_TCHECK2(*cp, IGRP_RTE_SIZE);
- igrp_entry_print(ndo, (struct igrprte *)cp, 0, 1);
+ igrp_entry_print(ndo, (const struct igrprte *)cp, 0, 1);
--next;
} else {
ND_PRINT((ndo, " [extra bytes %d]", length));