summaryrefslogtreecommitdiff
path: root/net/tcpdump/patches/patch-ac
blob: b336c701c39876558f069dca9a123f9545af9f48 (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.2 2005/06/12 15:38:32 salo 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);