diff --git a/src/session.c b/src/session.c index 5229c7fe2..d5dbff247 100644 --- a/src/session.c +++ b/src/session.c @@ -50,6 +50,7 @@ void session_free(struct session *s) struct http_txn *txn = &s->txn; struct proxy *fe = s->fe; struct bref *bref, *back; + int i; if (s->pend_pos) pendconn_free(s->pend_pos); @@ -82,6 +83,13 @@ void session_free(struct session *s) http_end_txn(s); + for (i = 0; i < s->store_count; i++) { + if (!s->store[i].ts) + continue; + stksess_free(s->store[i].table, s->store[i].ts); + s->store[i].ts = NULL; + } + if (fe) { pool_free2(fe->hdr_idx_pool, txn->hdr_idx.v); pool_free2(fe->rsp_cap_pool, txn->rsp.cap);