Merge pull request #11182 from miri64/gnrc_ipv6_nib/fix/pkt-null-on-error
gnrc_ipv6_nib: check if pkt is NULL on error
This commit is contained in:
commit
aa8e760e46
@ -203,7 +203,7 @@ int gnrc_ipv6_nib_get_next_hop_l2addr(const ipv6_addr_t *dst,
|
|||||||
/* _resolve_addr releases pkt only if not queued (in which case
|
/* _resolve_addr releases pkt only if not queued (in which case
|
||||||
* we also shouldn't release), but if netif is not defined we
|
* we also shouldn't release), but if netif is not defined we
|
||||||
* should release in any case. */
|
* should release in any case. */
|
||||||
if (netif == NULL) {
|
if ((netif == NULL) && (pkt != NULL)) {
|
||||||
gnrc_icmpv6_error_dst_unr_send(ICMPV6_ERROR_DST_UNR_ADDR,
|
gnrc_icmpv6_error_dst_unr_send(ICMPV6_ERROR_DST_UNR_ADDR,
|
||||||
pkt);
|
pkt);
|
||||||
gnrc_pktbuf_release_error(pkt, EHOSTUNREACH);
|
gnrc_pktbuf_release_error(pkt, EHOSTUNREACH);
|
||||||
@ -228,10 +228,14 @@ int gnrc_ipv6_nib_get_next_hop_l2addr(const ipv6_addr_t *dst,
|
|||||||
memcpy(&route.next_hop, dst, sizeof(route.next_hop));
|
memcpy(&route.next_hop, dst, sizeof(route.next_hop));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
gnrc_icmpv6_error_dst_unr_send(ICMPV6_ERROR_DST_UNR_NO_ROUTE,
|
|
||||||
pkt);
|
|
||||||
res = -ENETUNREACH;
|
res = -ENETUNREACH;
|
||||||
gnrc_pktbuf_release_error(pkt, ENETUNREACH);
|
if (pkt != NULL) {
|
||||||
|
gnrc_icmpv6_error_dst_unr_send(
|
||||||
|
ICMPV6_ERROR_DST_UNR_NO_ROUTE,
|
||||||
|
pkt
|
||||||
|
);
|
||||||
|
gnrc_pktbuf_release_error(pkt, ENETUNREACH);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1201,6 +1205,7 @@ static bool _resolve_addr(const ipv6_addr_t *dst, gnrc_netif_t *netif,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/* pkt != NULL already checked above */
|
||||||
else {
|
else {
|
||||||
gnrc_icmpv6_error_dst_unr_send(ICMPV6_ERROR_DST_UNR_ADDR,
|
gnrc_icmpv6_error_dst_unr_send(ICMPV6_ERROR_DST_UNR_ADDR,
|
||||||
pkt);
|
pkt);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user