summaryrefslogtreecommitdiff
path: root/net/quagga/patches
diff options
context:
space:
mode:
authorgdt <gdt@pkgsrc.org>2010-08-31 13:20:13 +0000
committergdt <gdt@pkgsrc.org>2010-08-31 13:20:13 +0000
commit31de68bb14cc8ace26ef8e5d533038918c57c688 (patch)
treed9437651e294511c33abb14d755353051294c470 /net/quagga/patches
parentbbd37b9b1306b7bfcb7872b9341ffebb2017fefc (diff)
downloadpkgsrc-31de68bb14cc8ace26ef8e5d533038918c57c688.tar.gz
Replace with contents of quagga-devel, thus upgrading to 0.99.17.
Diffstat (limited to 'net/quagga/patches')
-rw-r--r--net/quagga/patches/patch-aa12
-rw-r--r--net/quagga/patches/patch-ab178
-rw-r--r--net/quagga/patches/patch-ac15
3 files changed, 0 insertions, 205 deletions
diff --git a/net/quagga/patches/patch-aa b/net/quagga/patches/patch-aa
deleted file mode 100644
index b2050c02360..00000000000
--- a/net/quagga/patches/patch-aa
+++ /dev/null
@@ -1,12 +0,0 @@
-$NetBSD: patch-aa,v 1.3 2006/03/23 12:30:22 joerg Exp $
-
---- ospf6d/ospf6d.h.orig 2006-03-23 12:08:51.000000000 +0000
-+++ ospf6d/ospf6d.h
-@@ -25,7 +25,6 @@
- #define OSPF6_DAEMON_VERSION "0.9.7o"
-
- /* global variables */
--extern int errno;
- extern struct thread_master *master;
-
- #ifdef INRIA_IPV6
diff --git a/net/quagga/patches/patch-ab b/net/quagga/patches/patch-ab
deleted file mode 100644
index e0e8810fbd4..00000000000
--- a/net/quagga/patches/patch-ab
+++ /dev/null
@@ -1,178 +0,0 @@
-$NetBSD: patch-ab,v 1.3 2008/05/13 22:30:47 tonnerre Exp $
-
---- bgpd/bgp_attr.c
-+++ bgpd/bgp_attr.c
-@@ -39,7 +39,7 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
- #include "bgpd/bgp_ecommunity.h"
-
- /* Attribute strings for logging. */
--struct message attr_str [] =
-+static struct message attr_str [] =
- {
- { BGP_ATTR_ORIGIN, "ORIGIN" },
- { BGP_ATTR_AS_PATH, "AS_PATH" },
-@@ -58,6 +58,7 @@ struct message attr_str [] =
- { BGP_ATTR_MP_UNREACH_NLRI, "MP_UNREACH_NLRI" },
- { 0, NULL }
- };
-+int attr_str_max = sizeof(attr_str)/sizeof(attr_str[0]);
-
- struct hash *cluster_hash;
-
-@@ -922,24 +923,30 @@ bgp_mp_reach_parse (struct peer *peer, bgp_size_t length, struct attr *attr,
- {
- u_int16_t afi;
- u_char safi;
-- u_char snpa_num;
-- u_char snpa_len;
-- u_char *lim;
- bgp_size_t nlri_len;
-+ size_t start;
- int ret;
- struct stream *s;
-
- /* Set end of packet. */
-- s = peer->ibuf;
-- lim = stream_pnt (s) + length;
--
-+ s = BGP_INPUT(peer);
-+ start = stream_get_getp(s);
-+
-+ /* safe to read statically sized header? */
-+#define BGP_MP_REACH_MIN_SIZE 5
-+ if ((length > STREAM_READABLE(s)) || (length < BGP_MP_REACH_MIN_SIZE))
-+ return -1;
-+
- /* Load AFI, SAFI. */
- afi = stream_getw (s);
- safi = stream_getc (s);
-
- /* Get nexthop length. */
- attr->mp_nexthop_len = stream_getc (s);
--
-+
-+ if (STREAM_READABLE(s) < attr->mp_nexthop_len)
-+ return -1;
-+
- /* Nexthop length check. */
- switch (attr->mp_nexthop_len)
- {
-@@ -986,31 +993,28 @@ bgp_mp_reach_parse (struct peer *peer, bgp_size_t length, struct attr *attr,
- break;
- }
-
-- snpa_num = stream_getc (s);
--
-- while (snpa_num--)
-- {
-- snpa_len = stream_getc (s);
-- stream_forward (s, (snpa_len + 1) >> 1);
-- }
-+ if (!STREAM_READABLE(s))
-+ return -1;
-+
-+ {
-+ u_char val;
-+ if ((val = stream_getc (s)))
-+ zlog_warn ("%s sent non-zero value, %u, for defunct SNPA-length field",
-+ peer->host, val);
-+ }
-+
-+ /* must have nrli_len, what is left of the attribute */
-+ nlri_len = length - (stream_get_getp(s) - start);
-+ if ((!nlri_len) || (nlri_len > STREAM_READABLE(s)))
-+ return -1;
-
-- /* If peer is based on old draft-00. I read NLRI length from the
-- packet. */
-- if (peer->version == BGP_VERSION_MP_4_DRAFT_00)
-- {
-- bgp_size_t nlri_total_len;
-- nlri_total_len = stream_getw (s);
-- }
--
-- nlri_len = lim - stream_pnt (s);
--
- if (safi != BGP_SAFI_VPNV4)
- {
- ret = bgp_nlri_sanity_check (peer, afi, stream_pnt (s), nlri_len);
- if (ret < 0)
- return -1;
- }
--
-+
- mp_update->afi = afi;
- mp_update->safi = safi;
- mp_update->nlri = stream_pnt (s);
-@@ -1023,24 +1027,26 @@ bgp_mp_reach_parse (struct peer *peer, bgp_size_t length, struct attr *attr,
-
- /* Multiprotocol unreachable parse */
- int
--bgp_mp_unreach_parse (struct peer *peer, int length,
-+bgp_mp_unreach_parse (struct peer *peer, bgp_size_t length,
- struct bgp_nlri *mp_withdraw)
- {
- struct stream *s;
- u_int16_t afi;
- u_char safi;
-- u_char *lim;
- u_int16_t withdraw_len;
- int ret;
-
- s = peer->ibuf;
-- lim = stream_pnt (s) + length;
-
-+#define BGP_MP_UNREACH_MIN_SIZE 3
-+ if ((length > STREAM_READABLE(s)) || (length < BGP_MP_UNREACH_MIN_SIZE))
-+ return -1;
-+
- afi = stream_getw (s);
- safi = stream_getc (s);
--
-- withdraw_len = lim - stream_pnt (s);
--
-+
-+ withdraw_len = length - BGP_MP_UNREACH_MIN_SIZE;
-+
- if (safi != BGP_SAFI_VPNV4)
- {
- ret = bgp_nlri_sanity_check (peer, afi, stream_pnt (s), withdraw_len);
-@@ -1271,13 +1277,23 @@ bgp_attr_parse (struct peer *peer, struct attr *attr, bgp_size_t size,
-
- /* If error occured immediately return to the caller. */
- if (ret < 0)
-- return ret;
-+ {
-+ zlog (peer->log, LOG_WARNING,
-+ "%s: Attribute %s, parse error",
-+ peer->host,
-+ LOOKUP (attr_str, type));
-+ bgp_notify_send (peer,
-+ BGP_NOTIFY_UPDATE_ERR,
-+ BGP_NOTIFY_UPDATE_MAL_ATTR);
-+ return ret;
-+ }
-
- /* Check the fetched length. */
- if (BGP_INPUT_PNT (peer) != attr_endp)
- {
- zlog (peer->log, LOG_WARNING,
-- "%s BGP attribute fetch error", peer->host);
-+ "%s: BGP attribute %s, fetch error",
-+ peer->host, LOOKUP (attr_str, type));
- bgp_notify_send (peer,
- BGP_NOTIFY_UPDATE_ERR,
- BGP_NOTIFY_UPDATE_ATTR_LENG_ERR);
-@@ -1289,7 +1305,8 @@ bgp_attr_parse (struct peer *peer, struct attr *attr, bgp_size_t size,
- if (BGP_INPUT_PNT (peer) != endp)
- {
- zlog (peer->log, LOG_WARNING,
-- "%s BGP attribute length mismatch", peer->host);
-+ "%s BGP attribute %s, length mismatch",
-+ peer->host, LOOKUP (attr_str, type));
- bgp_notify_send (peer,
- BGP_NOTIFY_UPDATE_ERR,
- BGP_NOTIFY_UPDATE_ATTR_LENG_ERR);
-diff --git a/doc/quagga.info b/doc/quagga.info
-diff --git a/lib/stream.h b/lib/stream.h
-index f7a94ea..a85e413 100644
diff --git a/net/quagga/patches/patch-ac b/net/quagga/patches/patch-ac
deleted file mode 100644
index 10dfa797722..00000000000
--- a/net/quagga/patches/patch-ac
+++ /dev/null
@@ -1,15 +0,0 @@
-$NetBSD: patch-ac,v 1.3 2008/05/13 22:30:47 tonnerre Exp $
-
---- lib/stream.h
-+++ lib/stream.h
-@@ -59,7 +59,9 @@ struct stream_fifo
- #define STREAM_SIZE(S) ((S)->size)
- #define STREAM_REMAIN(S) ((S)->size - (S)->putp)
- #define STREAM_DATA(S) ((S)->data)
--
-+/* number of bytes still to be read */
-+#define STREAM_READABLE(S) ((S)->endp - (S)->getp)
-+
- /* Stream prototypes. */
- struct stream *stream_new (size_t);
- void stream_free (struct stream *);