changeset 5318:8611693d307f draft

Linux: more freeifaddrs
author Roy Marples <roy@marples.name>
date Fri, 05 Jun 2020 14:28:27 +0100
parents 8b8bdc55dde8
children 3180f8b46cc4
files src/dhcpcd.c
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/dhcpcd.c	Fri Jun 05 14:20:55 2020 +0100
+++ b/src/dhcpcd.c	Fri Jun 05 14:28:27 2020 +0100
@@ -2438,11 +2438,17 @@
 exit1:
 	if (control_stop(&ctx) == -1)
 		logerr("%s: control_stop", __func__);
+	if (ifaddrs != NULL) {
+#ifdef PRIVSEP_GETIFADDRS
+		if (IN_PRIVSEP(&ctx))
+			free(ifaddrs);
+		else
+#endif
+			freeifaddrs(ifaddrs);
+	}
 #ifdef PRIVSEP
 	ps_stop(&ctx);
 #endif
-	if (ifaddrs != NULL)
-		freeifaddrs(ifaddrs);
 	/* Free memory and close fd's */
 	if (ctx.ifaces) {
 		while ((ifp = TAILQ_FIRST(ctx.ifaces))) {