From dc0d700d5c604a2c45cb7065face0a5a3aee5eda Mon Sep 17 00:00:00 2001 From: Evgeny Date: Tue, 21 Apr 2026 19:27:13 +0300 Subject: [PATCH] Fix: free pkt_pool memory for keepalive packets (data_len=0) --- src/etcp.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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);