Blame SOURCES/freeradius-Fix-segfault-when-home_server-is-null.patch

cf6b55
From e2de6fab148e800380f1929fe4ea88a38de42053 Mon Sep 17 00:00:00 2001
cf6b55
From: "Alan T. DeKok" <aland@freeradius.org>
cf6b55
Date: Wed, 20 Nov 2019 13:59:54 -0500
cf6b55
Subject: [PATCH] a better fix for commit 30ffd21
cf6b55
cf6b55
Which still runs post-proxy-type fail if all of the home servers
cf6b55
are dead
cf6b55
cf6b55
[antorres@redhat.com: solved in FR 3.0.21, resolves bz#2030173]
cf6b55
[antorres@redhat.com: removed first hunk of commit, already present]
cf6b55
---
cf6b55
 src/main/process.c | 9 +++------
cf6b55
 1 file changed, 3 insertions(+), 6 deletions(-)
cf6b55
cf6b55
diff --git a/src/main/process.c b/src/main/process.c
cf6b55
index c8b3af24e2..1a48517d43 100644
cf6b55
--- a/src/main/process.c
cf6b55
+++ b/src/main/process.c
cf6b55
@@ -2475,13 +2474,12 @@ static int process_proxy_reply(REQUEST *request, RADIUS_PACKET *reply)
cf6b55
 	}
cf6b55
 
cf6b55
 	old_server = request->server;
cf6b55
-	rad_assert(request->home_server != NULL);
cf6b55
 
cf6b55
 	/*
cf6b55
 	 *	If the home server is virtual, just run pre_proxy from
cf6b55
 	 *	that section.
cf6b55
 	 */
cf6b55
-	if (request->home_server->server) {
cf6b55
+	if (request->home_server && request->home_server->server) {
cf6b55
 		request->server = request->home_server->server;
cf6b55
 
cf6b55
 	} else {
cf6b55
@@ -3182,13 +3180,12 @@ do_home:
cf6b55
 	}
cf6b55
 
cf6b55
 	old_server = request->server;
cf6b55
-	rad_assert(request->home_server != NULL);
cf6b55
 
cf6b55
 	/*
cf6b55
 	 *	If the home server is virtual, just run pre_proxy from
cf6b55
 	 *	that section.
cf6b55
 	 */
cf6b55
-	if (request->home_server->server) {
cf6b55
+	if (request->home_server && request->home_server->server) {
cf6b55
 		request->server = request->home_server->server;
cf6b55
 
cf6b55
 	} else {
cf6b55
-- 
cf6b55
2.31.1
cf6b55