aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAriadne Conill <ariadne@dereferenced.org>2020-10-08 18:31:49 -0600
committerAriadne Conill <ariadne@dereferenced.org>2020-10-08 18:32:11 -0600
commitf3895e77df1338d36160aef8b263d5bab0b20c4a (patch)
tree081fd54ec433895a768e65ff72ee31856dc3f957
parentf793dd44c8ab1d0987f4c86522af79d5cd274632 (diff)
community/frr: allow invalid NLRI attributes
-rw-r--r--community/frr/APKBUILD6
-rw-r--r--community/frr/allow-invalid-nlri-attributes.patch33
2 files changed, 37 insertions, 2 deletions
diff --git a/community/frr/APKBUILD b/community/frr/APKBUILD
index cf63f0c77ab..a79b66d2ca7 100644
--- a/community/frr/APKBUILD
+++ b/community/frr/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Daniel Corbe <daniel@corbe.net>
pkgname=frr
pkgver=7.4
-pkgrel=0
+pkgrel=1
pkgdesc="Free Range Routing is a fork of Quagga"
pkgusers="frr"
pkggroups="frr frrvty"
@@ -35,6 +35,7 @@ subpackages="$pkgname-dbg
"
source="https://github.com/FRRouting/frr/archive/frr-$pkgver.tar.gz
frr.initd
+ allow-invalid-nlri-attributes.patch
"
builddir="$srcdir"/$pkgname-$pkgname-$pkgver
@@ -125,4 +126,5 @@ snmp() {
}
sha512sums="d5c4e3bf7527bc094a65b24fda1b7a86f87e996fb3d98abe646e878274e0ca30f45aefca76816414b9d44607616cd2eb8ad118045b8986a92dd130f3a704162f frr-7.4.tar.gz
-b495b2be9f2cbb065104ccc0c3474471e870b53ac62ed4fba40020c8d50866e637a99ef3d7af5de1018ff659c4757baac4f40d7648a9de99ed14db33c8992b54 frr.initd"
+b495b2be9f2cbb065104ccc0c3474471e870b53ac62ed4fba40020c8d50866e637a99ef3d7af5de1018ff659c4757baac4f40d7648a9de99ed14db33c8992b54 frr.initd
+5a41a4daf479aa24c424565728cf1bd175c993704ddc7527f11c466dd89fef409069e772cee87cdd9f30903d7a3ee33b1b662c3948ae4bbac126313e6a83ff8f allow-invalid-nlri-attributes.patch"
diff --git a/community/frr/allow-invalid-nlri-attributes.patch b/community/frr/allow-invalid-nlri-attributes.patch
new file mode 100644
index 00000000000..07bceb7ceb2
--- /dev/null
+++ b/community/frr/allow-invalid-nlri-attributes.patch
@@ -0,0 +1,33 @@
+Purpose: Allows invalid NLRI attributes due to truncation issue.
+Upstream: Not at the moment
+
+diff -urN frr-frr-7.4.orig/bgpd/bgp_attr.c frr-frr-7.4/bgpd/bgp_attr.c
+--- frr-frr-7.4.orig/bgpd/bgp_attr.c 2020-10-08 18:05:11.115803185 -0600
++++ frr-frr-7.4/bgpd/bgp_attr.c 2020-10-08 18:06:18.132718181 -0600
+@@ -2169,9 +2169,13 @@
+ */
+ if (length == 0) {
+ attr->lcommunity = NULL;
++#if 0
+ /* Empty extcomm doesn't seem to be invalid per se */
+ return bgp_attr_malformed(args, BGP_NOTIFY_UPDATE_OPT_ATTR_ERR,
+ args->total);
++#else
++ return BGP_ATTR_PARSE_PROCEED;
++#endif
+ }
+
+ attr->lcommunity = lcommunity_parse(stream_pnt(peer->curr), length);
+@@ -2179,8 +2183,12 @@
+ stream_forward_getp(peer->curr, length);
+
+ if (!attr->lcommunity)
++#if 0
+ return bgp_attr_malformed(args, BGP_NOTIFY_UPDATE_OPT_ATTR_ERR,
+ args->total);
++#else
++ return BGP_ATTR_PARSE_PROCEED;
++#endif
+
+ attr->flag |= ATTR_FLAG_BIT(BGP_ATTR_LARGE_COMMUNITIES);
+