if_free(ifp);
}
free(ifs);
- if_freeifaddrs(&ifaddrs);
+ if_freeifaddrs(ctx, &ifaddrs);
return e;
}
if_markaddrsstale(ctx->ifaces);
if_learnaddrs(ctx, ctx->ifaces, &ifaddrs);
if_deletestaleaddrs(ctx->ifaces);
- if_freeifaddrs(&ifaddrs);
+ if_freeifaddrs(ctx, &ifaddrs);
}
void
dhcpcd_initstate1(ifp, argc, argv, 0);
}
if_learnaddrs(&ctx, ctx.ifaces, &ifaddrs);
- if_freeifaddrs(&ifaddrs);
+ if_freeifaddrs(&ctx, &ifaddrs);
ifaddrs = NULL;
if (ctx.options & DHCPCD_BACKGROUND)
exit1:
if (!(ctx.options & DHCPCD_TEST) && 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);
- }
+ if_freeifaddrs(&ctx, &ifaddrs);
#ifdef PRIVSEP
ps_stop(&ctx);
#endif
}
}
-void if_freeifaddrs(struct ifaddrs **ifaddrs)
+void if_freeifaddrs(struct dhcpcd_ctx *ctx, struct ifaddrs **ifaddrs)
{
+#ifndef PRIVSEP_GETIFADDRS
+ _UNUSED(ctx);
+#endif
if (ifaddrs == NULL)
return;
bool if_valid_hwaddr(const uint8_t *, size_t);
struct if_head *if_discover(struct dhcpcd_ctx *, struct ifaddrs **,
int, char * const *);
-void if_freeifaddrs(struct ifaddrs **);
+void if_freeifaddrs(struct dhcpcd_ctx *ctx, struct ifaddrs **);
void if_markaddrsstale(struct if_head *);
void if_learnaddrs(struct dhcpcd_ctx *, struct if_head *, struct ifaddrs **);
void if_deletestaleaddrs(struct if_head *);