changeset 4246:687273d5849d draft

BSD: fix segfault when on carrier when IPv6 addresses are present This doesn't affect NetBSD.
author Roy Marples <roy@marples.name>
date Tue, 27 Mar 2018 23:06:30 +0100
parents e2fd7f648419
children 22a5ac71f5c8
files src/dhcpcd.c
diffstat 1 files changed, 7 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/dhcpcd.c	Tue Mar 27 07:52:25 2018 +0000
+++ b/src/dhcpcd.c	Tue Mar 27 23:06:30 2018 +0100
@@ -995,6 +995,7 @@
 	}
 	/* Check if we already have the interface */
 	iff = if_find(ctx->ifaces, ifp->name);
+
 	if (iff != NULL) {
 		if (iff->active)
 			logdebugx("%s: interface updated", iff->name);
@@ -1013,9 +1014,12 @@
 		}
 		iff = ifp;
 	}
-	if_learnaddrs(ctx, ifs, &ifaddrs);
-	if (action > 0 && iff->active)
-		dhcpcd_prestartinterface(iff);
+
+	if (action > 0) {
+		if_learnaddrs(ctx, ifs, &ifaddrs);
+		if (iff->active)
+			dhcpcd_prestartinterface(iff);
+	}
 
 	/* Free our discovered list */
 	while ((ifp = TAILQ_FIRST(ifs))) {