summaryrefslogtreecommitdiff
path: root/net/tcpdump/patches/patch-ac
blob: 18566631419a262842c59ab79d672dd871d0fa55 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$NetBSD: patch-ac,v 1.1.2.3 2005/06/13 05:31:49 snj Exp $

--- print-bgp.c.orig	2004-03-24 01:04:04.000000000 +0100
+++ print-bgp.c	2005-06-12 17:22:17.000000000 +0200
@@ -1216,6 +1216,8 @@
                             tptr = pptr + len;
                             break;
 			}
+			if (advance < 0) /* infinite loop protection */
+				break;
 			tptr += advance;
 		}
 		break;
@@ -1646,9 +1648,10 @@
 		while (dat + length > p) {
 			char buf[MAXHOSTNAMELEN + 100];
 			i = decode_prefix4(p, buf, sizeof(buf));
-			if (i == -1)
+			if (i == -1) {
 				printf("\n\t    (illegal prefix length)");
-			else if (i == -2)
+				break;
+                        } else if (i == -2)
 				goto trunc;
 			else {
 				printf("\n\t    %s", buf);