Resolves: rhbz#2329643 - upgrading frr to 10.2 causes pimd crashes
This commit is contained in:
41
0006-autorp-segfault.patch
Normal file
41
0006-autorp-segfault.patch
Normal 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__);
|
||||||
|
|
||||||
8
frr.spec
8
frr.spec
@@ -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
2
frr.te
@@ -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)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user