shell: sc_icmpv6_echo: release payload when pktbuf full
Otherwise it gets never released Co-Authored-By: Gunar Schorcht <gunar@schorcht.net>
This commit is contained in:
parent
94a89f5105
commit
8bd9e0f0c2
@ -232,32 +232,36 @@ int _icmpv6_ping(int argc, char **argv)
|
|||||||
ping_start = xtimer_now_usec64();
|
ping_start = xtimer_now_usec64();
|
||||||
|
|
||||||
while ((remaining--) > 0) {
|
while ((remaining--) > 0) {
|
||||||
gnrc_pktsnip_t *pkt;
|
gnrc_pktsnip_t *pkt, *payload;
|
||||||
uint32_t start, timeout = 1 * US_PER_SEC;
|
uint32_t start, timeout = 1 * US_PER_SEC;
|
||||||
|
|
||||||
pkt = gnrc_icmpv6_echo_build(ICMPV6_ECHO_REQ, id, ++max_seq_expected,
|
payload = gnrc_icmpv6_echo_build(ICMPV6_ECHO_REQ, id,
|
||||||
NULL, payload_len);
|
++max_seq_expected,
|
||||||
|
NULL, payload_len);
|
||||||
|
|
||||||
if (pkt == NULL) {
|
if (payload == NULL) {
|
||||||
puts("error: packet buffer full");
|
puts("error: packet buffer full");
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
_set_payload(pkt->data, payload_len);
|
_set_payload(payload->data, payload_len);
|
||||||
|
|
||||||
pkt = gnrc_ipv6_hdr_build(pkt, NULL, &addr);
|
pkt = gnrc_ipv6_hdr_build(payload, NULL, &addr);
|
||||||
|
|
||||||
if (pkt == NULL) {
|
if (pkt == NULL) {
|
||||||
puts("error: packet buffer full");
|
puts("error: packet buffer full");
|
||||||
|
gnrc_pktbuf_release(payload);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (src_iface != KERNEL_PID_UNDEF) {
|
if (src_iface != KERNEL_PID_UNDEF) {
|
||||||
pkt = gnrc_pktbuf_add(pkt, NULL, sizeof(gnrc_netif_hdr_t),
|
payload = pkt;
|
||||||
|
pkt = gnrc_pktbuf_add(payload, NULL, sizeof(gnrc_netif_hdr_t),
|
||||||
GNRC_NETTYPE_NETIF);
|
GNRC_NETTYPE_NETIF);
|
||||||
|
|
||||||
if (pkt == NULL) {
|
if (pkt == NULL) {
|
||||||
puts("error: packet buffer full");
|
puts("error: packet buffer full");
|
||||||
|
gnrc_pktbuf_release(payload);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user