Resolves: rhbz#2329643 - upgrading frr to 10.2 causes pimd crashes

This commit is contained in:
Michal Ruprich
2024-12-05 18:28:34 +01:00
parent 9db41267a7
commit 959d8d1a3f
3 changed files with 49 additions and 2 deletions

View File

@@ -0,0 +1,41 @@
From 37b88191fb4736ff0a1e565fc22003d0ab853ea2 Mon Sep 17 00:00:00 2001
From: Donald Sharp <sharpd@nvidia.com>
Date: Wed, 4 Dec 2024 10:47:33 -0500
Subject: [PATCH] pimd: Prevent crash of pim when auto-rp's socket is not
initialized
If the socket associated with the auto-rp fails to initialize then
the memory for the auto-rp is just dropped on the floor. Additionally
any type of attempt at using the feature will just cause pimd to crash,
when the pointer is derefed. Since it is derefed all over the place
without checking.
Clearly if you cannot bind/use the socket let's allow continuation.
Fixes: #17540
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
---
pimd/pim_autorp.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/pimd/pim_autorp.c b/pimd/pim_autorp.c
index 3fb10f4..91ed005 100644
--- a/pimd/pim_autorp.c
+++ b/pimd/pim_autorp.c
@@ -1014,12 +1014,14 @@ void pim_autorp_init(struct pim_instance *pim)
autorp->announce_interval = DEFAULT_ANNOUNCE_INTERVAL;
autorp->announce_holdtime = DEFAULT_ANNOUNCE_HOLDTIME;
+ pim->autorp = autorp;
+
if (!pim_autorp_socket_enable(autorp)) {
- zlog_err("%s: AutoRP failed to initialize", __func__);
+ zlog_err("%s: AutoRP failed to initialize, feature will not work correctly",
+ __func__);
return;
}
- pim->autorp = autorp;
if (PIM_DEBUG_AUTORP)
zlog_debug("%s: AutoRP Initialized", __func__);

View File

@@ -9,7 +9,7 @@
Name: frr Name: frr
Version: 10.2 Version: 10.2
Release: 1%{?dist} Release: 2%{?dist}
Summary: Routing daemon Summary: Routing daemon
License: GPL-2.0-or-later AND ISC AND LGPL-2.0-or-later AND BSD-2-Clause AND BSD-3-Clause AND (GPL-2.0-or-later OR ISC) AND MIT License: GPL-2.0-or-later AND ISC AND LGPL-2.0-or-later AND BSD-2-Clause AND BSD-3-Clause AND (GPL-2.0-or-later OR ISC) AND MIT
URL: http://www.frrouting.org URL: http://www.frrouting.org
@@ -26,6 +26,7 @@ Patch0002: 0002-enable-openssl.patch
Patch0003: 0003-disable-eigrp-crypto.patch Patch0003: 0003-disable-eigrp-crypto.patch
Patch0004: 0004-fips-mode.patch Patch0004: 0004-fips-mode.patch
Patch0005: 0005-remove-grpc-test.patch Patch0005: 0005-remove-grpc-test.patch
Patch0006: 0006-autorp-segfault.patch
BuildRequires: autoconf BuildRequires: autoconf
BuildRequires: automake BuildRequires: automake
@@ -116,7 +117,7 @@ autoreconf -ivf
--sysconfdir=%{_sysconfdir}/frr \ --sysconfdir=%{_sysconfdir}/frr \
--libdir=%{_libdir}/frr \ --libdir=%{_libdir}/frr \
--libexecdir=%{_libexecdir}/frr \ --libexecdir=%{_libexecdir}/frr \
--localstatedir=/run/frr \ --localstatedir=/var \
--enable-multipath=64 \ --enable-multipath=64 \
--enable-vtysh=yes \ --enable-vtysh=yes \
--disable-ospfclient \ --disable-ospfclient \
@@ -276,6 +277,9 @@ rm tests/lib/*grpc*
%endif %endif
%changelog %changelog
* Thu Dec 05 2024 Michal Ruprich <mruprich@redhat.com> - 10.2-2
- Resolves: rhbz#2329643 - upgrading frr to 10.2 causes pimd crashes
* Fri Nov 22 2024 Michal Ruprich <mruprich@redhat.com> - 10.2-1 * Fri Nov 22 2024 Michal Ruprich <mruprich@redhat.com> - 10.2-1
- New version 10.2 - New version 10.2

2
frr.te
View File

@@ -104,6 +104,8 @@ corenet_tcp_bind_qpasa_agent_port(frr_t)
corenet_tcp_bind_smntubootstrap_port(frr_t) corenet_tcp_bind_smntubootstrap_port(frr_t)
corenet_tcp_bind_versa_tek_port(frr_t) corenet_tcp_bind_versa_tek_port(frr_t)
corenet_tcp_bind_zebra_port(frr_t) corenet_tcp_bind_zebra_port(frr_t)
# general reserved port for pimd
corenet_tcp_bind_reserved_port(frr_t)
domain_use_interactive_fds(frr_t) domain_use_interactive_fds(frr_t)