diff --git a/sys/net/gnrc/sock/ip/gnrc_sock_ip.c b/sys/net/gnrc/sock/ip/gnrc_sock_ip.c index 6ba232480a..548e0d710f 100644 --- a/sys/net/gnrc/sock/ip/gnrc_sock_ip.c +++ b/sys/net/gnrc/sock/ip/gnrc_sock_ip.c @@ -120,8 +120,9 @@ ssize_t sock_ip_recv(sock_ip_t *sock, void *data, size_t max_len, return -EPROTO; } memcpy(data, pkt->data, pkt->size); + res = (int)pkt->size; gnrc_pktbuf_release(pkt); - return (int)pkt->size; + return res; } ssize_t sock_ip_send(sock_ip_t *sock, const void *data, size_t len, diff --git a/sys/net/gnrc/sock/udp/gnrc_sock_udp.c b/sys/net/gnrc/sock/udp/gnrc_sock_udp.c index 228aa78095..6268befe2c 100644 --- a/sys/net/gnrc/sock/udp/gnrc_sock_udp.c +++ b/sys/net/gnrc/sock/udp/gnrc_sock_udp.c @@ -215,8 +215,9 @@ ssize_t sock_udp_recv(sock_udp_t *sock, void *data, size_t max_len, return -EPROTO; } memcpy(data, pkt->data, pkt->size); + res = (int)pkt->size; gnrc_pktbuf_release(pkt); - return (int)pkt->size; + return res; } ssize_t sock_udp_send(sock_udp_t *sock, const void *data, size_t len,