Skip to content

Commit fcd21c6

Browse files
author
Dmitri Tikhonov
committed
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.
1 parent 30d0674 commit fcd21c6

File tree

5 files changed

+11
-8
lines changed

5 files changed

+11
-8
lines changed

CHANGELOG

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
2020-09-25
2+
- 2.20.2
3+
- [BUGFIX] Memory leak: free pushed promise when refcnt is zero.
4+
- [BUGFIX] Memory leak in IETF full conn dtor: cleanup closed IDs sets.
5+
16
2020-09-23
27
- 2.20.1
38
- [BUGFIX] Typo in new "validate peer addr by DCID" code. It is

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
# The short X.Y version
2727
version = u'2.20'
2828
# The full version, including alpha/beta/rc tags
29-
release = u'2.20.1'
29+
release = u'2.20.2'
3030

3131

3232
# -- General configuration ---------------------------------------------------

include/lsquic.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ extern "C" {
2525

2626
#define LSQUIC_MAJOR_VERSION 2
2727
#define LSQUIC_MINOR_VERSION 20
28-
#define LSQUIC_PATCH_VERSION 1
28+
#define LSQUIC_PATCH_VERSION 2
2929

3030
/**
3131
* Engine flags:

src/liblsquic/lsquic_full_conn_ietf.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2973,6 +2973,8 @@ ietf_full_conn_ci_destroy (struct lsquic_conn *lconn)
29732973
if (conn->ifc_pub.u.ietf.promises)
29742974
lsquic_hash_destroy(conn->ifc_pub.u.ietf.promises);
29752975
}
2976+
for (i = 0; i < N_SITS; ++i)
2977+
lsquic_set64_cleanup(&conn->ifc_closed_stream_ids[i]);
29762978
lsquic_hash_destroy(conn->ifc_pub.all_streams);
29772979
EV_LOG_CONN_EVENT(LSQUIC_LOG_CONN_ID, "full connection destroyed");
29782980
free(conn->ifc_errmsg);

src/liblsquic/lsquic_push_promise.h

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,13 @@
22
#ifndef LSQUIC_PUSH_PROMISE_H
33
#define LSQUIC_PUSH_PROMISE_H 1
44

5-
struct lsquic_hash_elem;
6-
struct lsquic_stream;
7-
85

96
struct push_promise
107
{
118
/* A push promise is associated with a single stream, while a stream can
129
* have several push promises it depends on. These push promises are
1310
* stored on a list. A push promise is destroyed when the dependent
14-
* stream is destroyed. This bounds the amount of time when DUPLICATE_PUSH
15-
* frames can be sent out.
11+
* stream is destroyed.
1612
*/
1713
SLIST_ENTRY(push_promise) pp_next;
1814
/* Push promises are stored a hash and can be searched by ID */
@@ -62,7 +58,7 @@ struct push_promise
6258
LSQ_DEBUG("destroy push promise %"PRIu64, (promise_)->pp_id); \
6359
if ((promise_)->pp_hash_id.qhe_flags & QHE_HASHED) \
6460
lsquic_hash_erase(all_promises_, &(promise_)->pp_hash_id); \
65-
free(promise); \
61+
free(promise_); \
6662
} \
6763
} \
6864
else \

0 commit comments

Comments
 (0)