From 56585766cf04f52b5a4268e84e3d433468284e40 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Tue, 5 Nov 2019 15:52:57 +0000 Subject: [PATCH] INET: Fix corruption of IPv4 address flags when renewing What a mistaka to maka! --- src/ipv4.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/ipv4.c b/src/ipv4.c index fd2a15d7..53550696 100644 --- a/src/ipv4.c +++ b/src/ipv4.c @@ -654,7 +654,7 @@ ipv4_addaddr(struct interface *ifp, const struct in_addr *addr, #endif ia->flags = IPV4_AF_NEW; } else - ia->flags |= ~IPV4_AF_NEW; + ia->flags &= ~IPV4_AF_NEW; ia->mask = *mask; ia->brd = *bcast; @@ -952,15 +952,13 @@ ipv4_free(struct interface *ifp) struct ipv4_state *state; struct ipv4_addr *ia; - if (ifp) { - state = IPV4_STATE(ifp); - if (state) { - while ((ia = TAILQ_FIRST(&state->addrs))) { - TAILQ_REMOVE(&state->addrs, ia, next); - free(ia); - } - free(state->buffer); - free(state); - } + if (ifp == NULL || (state = IPV4_STATE(ifp)) == NULL) + return; + + while ((ia = TAILQ_FIRST(&state->addrs))) { + TAILQ_REMOVE(&state->addrs, ia, next); + free(ia); } + free(state->buffer); + free(state); } -- 2.47.3