diff --git a/src/etcp.c b/src/etcp.c index 6c96947d..93acb542 100644 --- a/src/etcp.c +++ b/src/etcp.c @@ -1010,7 +1010,11 @@ void etcp_ack_recv(struct ETCP_CONN* etcp, uint32_t seq, uint16_t ts, uint16_t d // Process incoming decrypted packet void etcp_conn_input(struct ETCP_DGRAM* pkt) { DEBUG_TRACE(DEBUG_CATEGORY_ETCP, ""); - if (!pkt || !pkt->data_len) return; + if (!pkt) return; + if (!pkt->data_len) { + memory_pool_free(pkt->link->etcp->instance->pkt_pool, pkt); + return; + } etcp_dump_pkt_sections(pkt, pkt->link, 0);