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

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