From: Donald Sharp Date: Mon, 16 Apr 2018 15:17:52 +0000 (-0400) Subject: zebra: Check for NULL in connected_add_ipv6 X-Git-Tag: frr-5.0-dev~45^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=f52d0a1a702875093b7dedfed9981f39619914b6;p=mirror%2Ffrr.git zebra: Check for NULL in connected_add_ipv6 When I implemented the same functionality in add_ipv6 that add_ipv4 has I just assumed that broad would not be NULL with the ZEBRA_IFA_PEER flag set. Modify the code to act similiar to the flow of control in add_ipv4. Signed-off-by: Donald Sharp --- diff --git a/zebra/connected.c b/zebra/connected.c index 35b3b0f4a9..23f2f666a0 100644 --- a/zebra/connected.c +++ b/zebra/connected.c @@ -519,12 +519,18 @@ void connected_add_ipv6(struct interface *ifp, int flags, struct in6_addr *addr, p->prefixlen = prefixlen; ifc->address = (struct prefix *)p; - if (CHECK_FLAG(ifc->flags, ZEBRA_IFA_PEER)) { + if (broad) { p = prefix_ipv6_new(); p->family = AF_INET6; IPV6_ADDR_COPY(&p->prefix, broad); p->prefixlen = prefixlen; ifc->destination = (struct prefix *)p; + } else { + if (CHECK_FLAG(ifc->flags, ZEBRA_IFA_PEER)) { + zlog_warn("warning: %s called for interface %s with peer flag set, but no peer address supplied", + __func__, ifp->name); + UNSET_FLAG(ifc->flags, ZEBRA_IFA_PEER); + } } /* Label of this address. */