conserver: fix crash on early exit
Add pending patch, fixing a crash when conserver exits without starting the server. Link: https://github.com/bstansell/conserver/pull/97 Signed-off-by: Bjørn Mork <bjorn@mork.no>
This commit is contained in:
parent
86a2b342de
commit
50876c8c49
|
@ -0,0 +1,43 @@
|
|||
From ec846dfedde7931689ff0a56be5ba75a5aefc9ea Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn@mork.no>
|
||||
Date: Mon, 5 Feb 2024 21:16:51 +0100
|
||||
Subject: [PATCH] fix SEGFAULT on early exit with IPv6 enabled
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Some command line options, like e.g -V, will cause conserver
|
||||
to exit before the IPv6 address variables are initialized.
|
||||
Avoid the calls to freeaddrinfo() in these cases.
|
||||
|
||||
Signed-off-by: Bjørn Mork <bjorn@mork.no>
|
||||
---
|
||||
conserver/main.c | 10 ++++++----
|
||||
1 file changed, 6 insertions(+), 4 deletions(-)
|
||||
|
||||
--- a/conserver/main.c
|
||||
+++ b/conserver/main.c
|
||||
@@ -53,8 +53,8 @@ int fAll = 0, fNoinit = 0, fVersion = 0,
|
||||
char *pcConfig = CONFIGFILE;
|
||||
int cMaxMemb = MAXMEMB;
|
||||
#if USE_IPV6
|
||||
-struct addrinfo *bindAddr;
|
||||
-struct addrinfo *bindBaseAddr;
|
||||
+struct addrinfo *bindAddr = (struct addrinfo *)0;
|
||||
+struct addrinfo *bindBaseAddr = (struct addrinfo *)0;
|
||||
#else
|
||||
in_addr_t bindAddr = INADDR_ANY;
|
||||
unsigned short bindPort;
|
||||
@@ -781,8 +781,10 @@ DestroyDataStructures(void)
|
||||
|
||||
#if USE_IPV6
|
||||
/* clean up addrinfo stucts */
|
||||
- freeaddrinfo(bindAddr);
|
||||
- freeaddrinfo(bindBaseAddr);
|
||||
+ if ((struct addrinfo *)0 != bindAddr)
|
||||
+ freeaddrinfo(bindAddr);
|
||||
+ if ((struct addrinfo *)0 != bindBaseAddr)
|
||||
+ freeaddrinfo(bindBaseAddr);
|
||||
#else
|
||||
if (myAddrs != (struct in_addr *)0)
|
||||
free(myAddrs);
|
Loading…
Reference in New Issue