From 13937ab37916cd983cf89ab215cd9f7221633d8c Mon Sep 17 00:00:00 2001 From: Hans Dedecker Date: Fri, 30 Dec 2016 17:44:44 +0100 Subject: [PATCH] dhcpv6-ia: fix delete logic of an assignment in reconf_timer Function free_dhcpv6_assignment already removes the assignment in the list so there's no need to call list_del in reconf_timer Signed-off-by: Hans Dedecker --- src/dhcpv6-ia.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/dhcpv6-ia.c b/src/dhcpv6-ia.c index e1d0278..17294f0 100644 --- a/src/dhcpv6-ia.c +++ b/src/dhcpv6-ia.c @@ -640,10 +640,9 @@ static void reconf_timer(struct uloop_timeout *event) list_for_each_entry_safe(a, n, &iface->ia_assignments, head) { if (!INFINITE_VALID(a->valid_until) && a->valid_until < now) { if ((a->length < 128 && a->clid_len > 0) || - (a->length == 128 && a->clid_len == 0)) { - list_del(&a->head); + (a->length == 128 && a->clid_len == 0)) free_dhcpv6_assignment(a); - } + } else if (a->reconf_cnt > 0 && a->reconf_cnt < 8 && now > a->reconf_sent + (1 << a->reconf_cnt)) { ++a->reconf_cnt; -- 2.11.0