From f52d0a1a702875093b7dedfed9981f39619914b6 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Mon, 16 Apr 2018 11:17:52 -0400 Subject: [PATCH] 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 --- zebra/connected.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/zebra/connected.c b/zebra/connected.c index 35b3b0f4a96d..23f2f666a059 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. */