From: Roy Marples Date: Fri, 27 Feb 2015 19:53:03 +0000 (+0000) Subject: Remove the address from the eloop tiemout queue before freeing. X-Git-Tag: v6.8.0~77 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5e6f739282de3a63df974b84ff567d4692f004e2;p=thirdparty%2Fdhcpcd.git Remove the address from the eloop tiemout queue before freeing. --- diff --git a/ipv6.c b/ipv6.c index 9064d97e..ed18626b 100644 --- a/ipv6.c +++ b/ipv6.c @@ -620,6 +620,8 @@ ipv6_deleteaddr(struct ipv6_addr *addr) TAILQ_FOREACH(ap, &state->addrs, next) { if (IN6_ARE_ADDR_EQUAL(&ap->addr, &addr->addr)) { TAILQ_REMOVE(&state->addrs, ap, next); + eloop_q_timeout_delete(addr->iface->ctx->eloop, 0, + NULL, ap); free(ap); break; } @@ -936,6 +938,7 @@ ipv6_handleifa(struct dhcpcd_ctx *ctx, case RTM_DELADDR: if (ap) { TAILQ_REMOVE(&state->addrs, ap, next); + eloop_q_timeout_delete(ctx->eloop, 0, NULL, ap); free(ap); } break;