diff --git a/0006-autorp-segfault.patch b/0006-autorp-segfault.patch new file mode 100644 index 0000000..f2d8925 --- /dev/null +++ b/0006-autorp-segfault.patch @@ -0,0 +1,41 @@ +From 37b88191fb4736ff0a1e565fc22003d0ab853ea2 Mon Sep 17 00:00:00 2001 +From: Donald Sharp +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 +--- + 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__); + diff --git a/frr.spec b/frr.spec index 0f91816..68efe8b 100644 --- a/frr.spec +++ b/frr.spec @@ -9,7 +9,7 @@ Name: frr Version: 10.2 -Release: 1%{?dist} +Release: 2%{?dist} 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 URL: http://www.frrouting.org @@ -26,6 +26,7 @@ Patch0002: 0002-enable-openssl.patch Patch0003: 0003-disable-eigrp-crypto.patch Patch0004: 0004-fips-mode.patch Patch0005: 0005-remove-grpc-test.patch +Patch0006: 0006-autorp-segfault.patch BuildRequires: autoconf BuildRequires: automake @@ -116,7 +117,7 @@ autoreconf -ivf --sysconfdir=%{_sysconfdir}/frr \ --libdir=%{_libdir}/frr \ --libexecdir=%{_libexecdir}/frr \ - --localstatedir=/run/frr \ + --localstatedir=/var \ --enable-multipath=64 \ --enable-vtysh=yes \ --disable-ospfclient \ @@ -276,6 +277,9 @@ rm tests/lib/*grpc* %endif %changelog +* Thu Dec 05 2024 Michal Ruprich - 10.2-2 +- Resolves: rhbz#2329643 - upgrading frr to 10.2 causes pimd crashes + * Fri Nov 22 2024 Michal Ruprich - 10.2-1 - New version 10.2 diff --git a/frr.te b/frr.te index 8d39d90..6e6afe5 100644 --- a/frr.te +++ b/frr.te @@ -104,6 +104,8 @@ corenet_tcp_bind_qpasa_agent_port(frr_t) corenet_tcp_bind_smntubootstrap_port(frr_t) corenet_tcp_bind_versa_tek_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)