Revert "Router Advertisement/Solicitation sanity check"
[project/odhcpd.git] / src / router.c
index 5abf1e6..5f3921d 100644 (file)
@@ -219,7 +219,10 @@ static void send_router_advert(struct uloop_timeout *event)
                .lladdr = {ND_OPT_SOURCE_LINKADDR, 1, {0}},
                .mtu = {ND_OPT_MTU, 1, 0, htonl(mtu)},
        };
-       adv.h.nd_ra_flags_reserved = ND_RA_FLAG_OTHER;
+
+       if (iface->dhcpv6)
+               adv.h.nd_ra_flags_reserved = ND_RA_FLAG_OTHER;
+
        if (iface->managed >= RELAYD_MANAGED_MFLAG)
                adv.h.nd_ra_flags_reserved |= ND_RA_FLAG_MANAGED;
 
@@ -353,6 +356,11 @@ static void send_router_advert(struct uloop_timeout *event)
                uint32_t lifetime;
                uint8_t name[];
        } *search = alloca(sizeof(*search) + search_padded);
+
+       if (!search) {
+               syslog(LOG_ERR, "Alloca failed for dns search on interface %s", iface->ifname);
+               return;
+       }
        search->type = ND_OPT_DNS_SEARCH;
        search->len = search_len ? ((sizeof(*search) + search_padded) / 8) : 0;
        search->pad = 0;