Release 2.12.9

- [BUGFIX] Memory leak in IETF full conn dtor: cleanup closed IDs sets.
- [BUGFIX] Memory leak: free pushed promise when refcnt is zero.
This commit is contained in:
Dmitri Tikhonov 2020-09-25 10:03:43 -04:00
parent 2d7c7f881c
commit 75f54c8c52
5 changed files with 10 additions and 3 deletions

View file

@ -1,3 +1,8 @@
2020-09-25
- 2.12.9
- [BUGFIX] Memory leak in IETF full conn dtor: cleanup closed IDs sets.
- [BUGFIX] Memory leak: free pushed promise when refcnt is zero.
2020-09-08 2020-09-08
- 2.12.8 - 2.12.8
- [BUGFIX] when stream is reset, it is writeable -- let user collect the - [BUGFIX] when stream is reset, it is writeable -- let user collect the

View file

@ -26,7 +26,7 @@ author = u'LiteSpeed Technologies'
# The short X.Y version # The short X.Y version
version = u'2.12' version = u'2.12'
# The full version, including alpha/beta/rc tags # The full version, including alpha/beta/rc tags
release = u'2.12.8' release = u'2.12.9'
# -- General configuration --------------------------------------------------- # -- General configuration ---------------------------------------------------

View file

@ -25,7 +25,7 @@ extern "C" {
#define LSQUIC_MAJOR_VERSION 2 #define LSQUIC_MAJOR_VERSION 2
#define LSQUIC_MINOR_VERSION 12 #define LSQUIC_MINOR_VERSION 12
#define LSQUIC_PATCH_VERSION 8 #define LSQUIC_PATCH_VERSION 9
/** /**
* Engine flags: * Engine flags:

View file

@ -2692,6 +2692,8 @@ ietf_full_conn_ci_destroy (struct lsquic_conn *lconn)
if (conn->ifc_pub.u.ietf.promises) if (conn->ifc_pub.u.ietf.promises)
lsquic_hash_destroy(conn->ifc_pub.u.ietf.promises); lsquic_hash_destroy(conn->ifc_pub.u.ietf.promises);
} }
for (i = 0; i < N_SITS; ++i)
lsquic_set64_cleanup(&conn->ifc_closed_stream_ids[i]);
lsquic_hash_destroy(conn->ifc_pub.all_streams); lsquic_hash_destroy(conn->ifc_pub.all_streams);
EV_LOG_CONN_EVENT(LSQUIC_LOG_CONN_ID, "full connection destroyed"); EV_LOG_CONN_EVENT(LSQUIC_LOG_CONN_ID, "full connection destroyed");
free(conn->ifc_errmsg); free(conn->ifc_errmsg);

View file

@ -62,7 +62,7 @@ struct push_promise
LSQ_DEBUG("destroy push promise %"PRIu64, (promise_)->pp_id); \ LSQ_DEBUG("destroy push promise %"PRIu64, (promise_)->pp_id); \
if ((promise_)->pp_hash_id.qhe_flags & QHE_HASHED) \ if ((promise_)->pp_hash_id.qhe_flags & QHE_HASHED) \
lsquic_hash_erase(all_promises_, &(promise_)->pp_hash_id); \ lsquic_hash_erase(all_promises_, &(promise_)->pp_hash_id); \
free(promise); \ free(promise_); \
} \ } \
} \ } \
else \ else \