diff --git a/src/radv.c b/src/radv.c index 749b666..faa0f6d 100644 --- a/src/radv.c +++ b/src/radv.c @@ -262,7 +262,9 @@ static void send_ra_alias(time_t now, int iface, char *iface_name, struct in6_ad parm.prio = calc_prio(ra_param); save_counter(0); - ra = expand(sizeof(struct ra_packet)); + + if (!(ra = expand(sizeof(struct ra_packet)))) + return; ra->type = ND_ROUTER_ADVERT; ra->code = 0; diff --git a/src/slaac.c b/src/slaac.c index 8034805..07b8ba4 100644 --- a/src/slaac.c +++ b/src/slaac.c @@ -147,7 +147,10 @@ time_t periodic_slaac(time_t now, struct dhcp_lease *leases) struct sockaddr_in6 addr; save_counter(0); - ping = expand(sizeof(struct ping_packet)); + + if (!(ping = expand(sizeof(struct ping_packet)))) + continue; + ping->type = ICMP6_ECHO_REQUEST; ping->code = 0; ping->identifier = ping_id;