mirror of
https://gitea.invidious.io/iv-org/litespeed-quic.git
synced 2024-08-15 00:53:43 +00:00
Release 2.20.2
- [BUGFIX] Memory leak: free pushed promise when refcnt is zero. - [BUGFIX] Memory leak in IETF full conn dtor: cleanup closed IDs sets.
This commit is contained in:
parent
30d0674ac2
commit
fcd21c67ff
5 changed files with 11 additions and 8 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2020-09-25
|
||||||
|
- 2.20.2
|
||||||
|
- [BUGFIX] Memory leak: free pushed promise when refcnt is zero.
|
||||||
|
- [BUGFIX] Memory leak in IETF full conn dtor: cleanup closed IDs sets.
|
||||||
|
|
||||||
2020-09-23
|
2020-09-23
|
||||||
- 2.20.1
|
- 2.20.1
|
||||||
- [BUGFIX] Typo in new "validate peer addr by DCID" code. It is
|
- [BUGFIX] Typo in new "validate peer addr by DCID" code. It is
|
||||||
|
|
|
@ -26,7 +26,7 @@ author = u'LiteSpeed Technologies'
|
||||||
# The short X.Y version
|
# The short X.Y version
|
||||||
version = u'2.20'
|
version = u'2.20'
|
||||||
# The full version, including alpha/beta/rc tags
|
# The full version, including alpha/beta/rc tags
|
||||||
release = u'2.20.1'
|
release = u'2.20.2'
|
||||||
|
|
||||||
|
|
||||||
# -- General configuration ---------------------------------------------------
|
# -- General configuration ---------------------------------------------------
|
||||||
|
|
|
@ -25,7 +25,7 @@ extern "C" {
|
||||||
|
|
||||||
#define LSQUIC_MAJOR_VERSION 2
|
#define LSQUIC_MAJOR_VERSION 2
|
||||||
#define LSQUIC_MINOR_VERSION 20
|
#define LSQUIC_MINOR_VERSION 20
|
||||||
#define LSQUIC_PATCH_VERSION 1
|
#define LSQUIC_PATCH_VERSION 2
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Engine flags:
|
* Engine flags:
|
||||||
|
|
|
@ -2973,6 +2973,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);
|
||||||
|
|
|
@ -2,17 +2,13 @@
|
||||||
#ifndef LSQUIC_PUSH_PROMISE_H
|
#ifndef LSQUIC_PUSH_PROMISE_H
|
||||||
#define LSQUIC_PUSH_PROMISE_H 1
|
#define LSQUIC_PUSH_PROMISE_H 1
|
||||||
|
|
||||||
struct lsquic_hash_elem;
|
|
||||||
struct lsquic_stream;
|
|
||||||
|
|
||||||
|
|
||||||
struct push_promise
|
struct push_promise
|
||||||
{
|
{
|
||||||
/* A push promise is associated with a single stream, while a stream can
|
/* A push promise is associated with a single stream, while a stream can
|
||||||
* have several push promises it depends on. These push promises are
|
* have several push promises it depends on. These push promises are
|
||||||
* stored on a list. A push promise is destroyed when the dependent
|
* stored on a list. A push promise is destroyed when the dependent
|
||||||
* stream is destroyed. This bounds the amount of time when DUPLICATE_PUSH
|
* stream is destroyed.
|
||||||
* frames can be sent out.
|
|
||||||
*/
|
*/
|
||||||
SLIST_ENTRY(push_promise) pp_next;
|
SLIST_ENTRY(push_promise) pp_next;
|
||||||
/* Push promises are stored a hash and can be searched by ID */
|
/* Push promises are stored a hash and can be searched by ID */
|
||||||
|
@ -62,7 +58,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 \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue