diff --git a/src/netif/etharp.c b/src/netif/etharp.c index a04afc53..ceca0d5f 100644 --- a/src/netif/etharp.c +++ b/src/netif/etharp.c @@ -865,9 +865,11 @@ err_t etharp_query(struct netif *netif, struct ip_addr *ipaddr, struct pbuf *q) if(copy_needed) { /* copy the whole packet into new pbufs */ p = pbuf_alloc(PBUF_RAW, p->tot_len, PBUF_RAM); - if (pbuf_copy(p, q) != ERR_OK) { - pbuf_free(p); - p = NULL; + if(p != NULL) { + if (pbuf_copy(p, q) != ERR_OK) { + pbuf_free(p); + p = NULL; + } } } else { /* referencing the old pbuf is enough */