diff --git a/src/apps/altcp_tls/altcp_tls_mbedtls.c b/src/apps/altcp_tls/altcp_tls_mbedtls.c index 7e61bae0..466be388 100644 --- a/src/apps/altcp_tls/altcp_tls_mbedtls.c +++ b/src/apps/altcp_tls/altcp_tls_mbedtls.c @@ -894,6 +894,11 @@ altcp_mbedtls_close(struct altcp_pcb *conn) } state = (altcp_mbedtls_state_t *)conn->state; if (state != NULL) { + if (state->rx) { + /* free leftover (unhandled) rx pbufs */ + pbuf_free(state->rx); + state->rx = NULL; + } state->flags |= ALTCP_MBEDTLS_FLAGS_TX_CLOSED; if (state->flags & ALTCP_MBEDTLS_FLAGS_RX_CLOSED) { altcp_mbedtls_dealloc(conn);