From 6482e542ebb82c21329d7a5f8a0baf10677571ed Mon Sep 17 00:00:00 2001 From: Olivier Cochard Date: Thu, 21 Jul 2022 23:35:04 +0200 Subject: [PATCH] net/frr8: Update to 8.3 --- net/frr8/Makefile | 2 +- net/frr8/distinfo | 6 +- net/frr8/files/patch-backport.patch | 175 ---------------------------- net/frr8/pkg-plist | 4 + 4 files changed, 8 insertions(+), 179 deletions(-) delete mode 100644 net/frr8/files/patch-backport.patch diff --git a/net/frr8/Makefile b/net/frr8/Makefile index 997a9863fec9..0e799fbedf57 100644 --- a/net/frr8/Makefile +++ b/net/frr8/Makefile @@ -1,5 +1,5 @@ PORTNAME= frr -PORTVERSION= 8.2.2 +PORTVERSION= 8.3 DISTVERSIONPREFIX= frr- CATEGORIES= net .if defined(PYTHONTOOLS) diff --git a/net/frr8/distinfo b/net/frr8/distinfo index a66f71561ac9..06782330e377 100644 --- a/net/frr8/distinfo +++ b/net/frr8/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1648249835 -SHA256 (FRRouting-frr-frr-8.2.2_GH0.tar.gz) = 33e974e2a622618e139983f65d93e92e7f1a735936ef18b18244403b15be002f -SIZE (FRRouting-frr-frr-8.2.2_GH0.tar.gz) = 9439460 +TIMESTAMP = 1658433791 +SHA256 (FRRouting-frr-frr-8.3_GH0.tar.gz) = bfc625936c72e64397acfa9182b1977a86b41ff4b3be96b41a59a6cb1621f4a6 +SIZE (FRRouting-frr-frr-8.3_GH0.tar.gz) = 9676363 diff --git a/net/frr8/files/patch-backport.patch b/net/frr8/files/patch-backport.patch deleted file mode 100644 index 434a37a08aa6..000000000000 --- a/net/frr8/files/patch-backport.patch +++ /dev/null @@ -1,175 +0,0 @@ -From 5362aa8ce565554973b282e47084e8b3cacabadb Mon Sep 17 00:00:00 2001 -From: Bijan -Date: Tue, 1 Feb 2022 11:03:00 +0330 -Subject: [PATCH 1/2] zebra: Keep the interface flags safe on multiple ioctl - calls - -Trying to call multiple ioctl calls on ifreq will result in -overwriting ifreq with garbage data. On if_get_flags call, -try to keep the flags field safe from another possible ioctl -call before applying the flags field. - -Modified code as per Code Review, done by Donald Sharp. - -Signed-off-by: Bijan -(cherry picked from commit 16dca7cec5f47b7a6f83822a1e681652b7d2d60d) ---- - zebra/ioctl.c | 25 ++++++++++++++----------- - 1 file changed, 14 insertions(+), 11 deletions(-) - -diff --git zebra/ioctl.c zebra/ioctl.c -index 8b30eea9f11..9b6aaf1d85a 100644 ---- zebra/ioctl.c -+++ zebra/ioctl.c -@@ -410,11 +410,14 @@ int if_unset_prefix_ctx(const struct zebra_dplane_ctx *ctx) - void if_get_flags(struct interface *ifp) - { - int ret; -- struct ifreq ifreq; -+ struct ifreq ifreqflags; -+ struct ifreq ifreqdata; - -- ifreq_set_name(&ifreq, ifp); -+ ifreq_set_name(&ifreqflags, ifp); -+ ifreq_set_name(&ifreqdata, ifp); - -- ret = vrf_if_ioctl(SIOCGIFFLAGS, (caddr_t)&ifreq, ifp->vrf->vrf_id); -+ ret = vrf_if_ioctl(SIOCGIFFLAGS, (caddr_t)&ifreqflags, -+ ifp->vrf->vrf_id); - if (ret < 0) { - flog_err_sys(EC_LIB_SYSTEM_CALL, - "vrf_if_ioctl(SIOCGIFFLAGS %s) failed: %s", -@@ -448,8 +451,8 @@ void if_get_flags(struct interface *ifp) - struct if_data ifd = {.ifi_link_state = 0}; - struct if_data *ifdata = &ifd; - -- ifreq.ifr_data = (caddr_t)ifdata; -- ret = vrf_if_ioctl(SIOCGIFDATA, (caddr_t)&ifreq, ifp->vrf->vrf_id); -+ ifreqdata.ifr_data = (caddr_t)ifdata; -+ ret = vrf_if_ioctl(SIOCGIFDATA, (caddr_t)&ifreqdata, ifp->vrf->vrf_id); - #endif - - if (ret == -1) -@@ -459,12 +462,12 @@ void if_get_flags(struct interface *ifp) - safe_strerror(errno)); - else { - if (ifdata->ifi_link_state >= LINK_STATE_UP) -- SET_FLAG(ifreq.ifr_flags, IFF_RUNNING); -+ SET_FLAG(ifreqflags.ifr_flags, IFF_RUNNING); - else if (ifdata->ifi_link_state == LINK_STATE_UNKNOWN) - /* BSD traditionally treats UNKNOWN as UP */ -- SET_FLAG(ifreq.ifr_flags, IFF_RUNNING); -+ SET_FLAG(ifreqflags.ifr_flags, IFF_RUNNING); - else -- UNSET_FLAG(ifreq.ifr_flags, IFF_RUNNING); -+ UNSET_FLAG(ifreqflags.ifr_flags, IFF_RUNNING); - } - - #elif defined(HAVE_BSD_LINK_DETECT) -@@ -489,14 +492,14 @@ void if_get_flags(struct interface *ifp) - ifp->name, safe_strerror(errno)); - } else if (ifmr.ifm_status & IFM_AVALID) { /* media state is valid */ - if (ifmr.ifm_status & IFM_ACTIVE) /* media is active */ -- SET_FLAG(ifreq.ifr_flags, IFF_RUNNING); -+ SET_FLAG(ifreqflags.ifr_flags, IFF_RUNNING); - else -- UNSET_FLAG(ifreq.ifr_flags, IFF_RUNNING); -+ UNSET_FLAG(ifreqflags.ifr_flags, IFF_RUNNING); - } - #endif /* HAVE_BSD_LINK_DETECT */ - - out: -- if_flags_update(ifp, (ifreq.ifr_flags & 0x0000ffff)); -+ if_flags_update(ifp, (ifreqflags.ifr_flags & 0x0000ffff)); - } - - /* Set interface flags */ - -From f26e0528634a8ad8e401ba8d9f708335a9349be1 Mon Sep 17 00:00:00 2001 -From: Donald Sharp -Date: Thu, 24 Mar 2022 12:57:01 -0400 -Subject: [PATCH 2/2] zebra: Don't send uninited data to kernel on FreeBSD - -When running zebra w/ valgrind, it was noticed that there -was a bunch of passing uninitialized data to the kernel: - -==38194== Syscall param ioctl(generic) points to uninitialised byte(s) -==38194== at 0x4CDF88A: ioctl (in /lib/libc.so.7) -==38194== by 0x49A4031: vrf_ioctl (vrf.c:860) -==38194== by 0x2AFE29: vrf_if_ioctl (ioctl.c:91) -==38194== by 0x2AFF39: if_get_mtu (ioctl.c:161) -==38194== by 0x2B12C3: ifm_read (kernel_socket.c:653) -==38194== by 0x2A7F76: interface_list (if_sysctl.c:129) -==38194== by 0x2E9958: zebra_ns_enable (zebra_ns.c:127) -==38194== by 0x2E9958: zebra_ns_init (zebra_ns.c:214) -==38194== by 0x2B3F82: main (main.c:401) -==38194== Address 0x7fc000967 is on thread 1's stack -==38194== in frame #3, created by if_get_mtu (ioctl.c:155) -==38194== -==38194== Syscall param ioctl(generic) points to uninitialised byte(s) -==38194== at 0x4CDF88A: ioctl (in /lib/libc.so.7) -==38194== by 0x49A4031: vrf_ioctl (vrf.c:860) -==38194== by 0x2AFE29: vrf_if_ioctl (ioctl.c:91) -==38194== by 0x2AFED9: if_get_metric (ioctl.c:143) -==38194== by 0x2B12CB: ifm_read (kernel_socket.c:655) -==38194== by 0x2A7F76: interface_list (if_sysctl.c:129) -==38194== by 0x2E9958: zebra_ns_enable (zebra_ns.c:127) -==38194== by 0x2E9958: zebra_ns_init (zebra_ns.c:214) -==38194== by 0x2B3F82: main (main.c:401) -==38194== Address 0x7fc000967 is on thread 1's stack -==38194== in frame #3, created by if_get_metric (ioctl.c:137) -==38194== -==38194== Syscall param ioctl(generic) points to uninitialised byte(s) -==38194== at 0x4CDF88A: ioctl (in /lib/libc.so.7) -==38194== by 0x49A4031: vrf_ioctl (vrf.c:860) -==38194== by 0x2AFE29: vrf_if_ioctl (ioctl.c:91) -==38194== by 0x2B052D: if_get_flags (ioctl.c:419) -==38194== by 0x2B1CF1: ifam_read (kernel_socket.c:930) -==38194== by 0x2A7F57: interface_list (if_sysctl.c:132) -==38194== by 0x2E9958: zebra_ns_enable (zebra_ns.c:127) -==38194== by 0x2E9958: zebra_ns_init (zebra_ns.c:214) -==38194== by 0x2B3F82: main (main.c:401) -==38194== Address 0x7fc000707 is on thread 1's stack -==38194== in frame #3, created by if_get_flags (ioctl.c:411) - -Valgrind is no longer reporting these issues. - -Signed-off-by: Donald Sharp -(cherry picked from commit ceacdc721682cdc929835ff3adc1e0f824f83dcb) ---- - zebra/ioctl.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git zebra/ioctl.c zebra/ioctl.c -index 9b6aaf1d85a..a895ed94100 100644 ---- zebra/ioctl.c -+++ zebra/ioctl.c -@@ -136,7 +136,7 @@ static int if_ioctl_ipv6(unsigned long request, caddr_t buffer) - void if_get_metric(struct interface *ifp) - { - #ifdef SIOCGIFMETRIC -- struct ifreq ifreq; -+ struct ifreq ifreq = {}; - - ifreq_set_name(&ifreq, ifp); - -@@ -153,7 +153,7 @@ void if_get_metric(struct interface *ifp) - /* get interface MTU */ - void if_get_mtu(struct interface *ifp) - { -- struct ifreq ifreq; -+ struct ifreq ifreq = {}; - - ifreq_set_name(&ifreq, ifp); - -@@ -410,8 +410,8 @@ int if_unset_prefix_ctx(const struct zebra_dplane_ctx *ctx) - void if_get_flags(struct interface *ifp) - { - int ret; -- struct ifreq ifreqflags; -- struct ifreq ifreqdata; -+ struct ifreq ifreqflags = {}; -+ struct ifreq ifreqdata = {}; - - ifreq_set_name(&ifreqflags, ifp); - ifreq_set_name(&ifreqdata, ifp); diff --git a/net/frr8/pkg-plist b/net/frr8/pkg-plist index 102b9985eefc..66e6fc2d7a0a 100644 --- a/net/frr8/pkg-plist +++ b/net/frr8/pkg-plist @@ -3,7 +3,9 @@ include/frr/agg_table.h include/frr/atomlist.h include/frr/assert.h +include/frr/base64.h include/frr/bfdd/bfddp_packet.h +include/frr/cspf.h include/frr/libfrr_trace.h include/frr/link_state.h include/frr/resolver.h @@ -12,6 +14,8 @@ include/frr/xref.h include/frr/yang.h include/frr/yang_translator.h include/frr/yang_wrappers.h +include/frr/zlog_5424.h +include/frr/zlog_live.h include/frr/bfd.h include/frr/bitfield.h include/frr/buffer.h