diff --git a/src/include/lwip/tcp.h b/src/include/lwip/tcp.h index d200e7c3..23fbbbba 100644 --- a/src/include/lwip/tcp.h +++ b/src/include/lwip/tcp.h @@ -375,7 +375,7 @@ err_t lwip_tcp_event(void *arg, struct tcp_pcb *pcb, #define TCP_EVENT_RECV(pcb,p,err,ret) \ if((pcb)->recv != NULL) \ { ret = (pcb)->recv((pcb)->callback_arg,(pcb),(p),(err)); } else { \ - pbuf_free(p); } + if (p) pbuf_free(p); } #define TCP_EVENT_CONNECTED(pcb,err,ret) \ if((pcb)->connected != NULL) \ (ret = (pcb)->connected((pcb)->callback_arg,(pcb),(err)))