File tree Expand file tree Collapse file tree 5 files changed +11
-8
lines changed Expand file tree Collapse file tree 5 files changed +11
-8
lines changed Original file line number Diff line number Diff line change
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
+
1
6
2020-09-23
2
7
- 2.20.1
3
8
- [BUGFIX] Typo in new "validate peer addr by DCID" code. It is
Original file line number Diff line number Diff line change 26
26
# The short X.Y version
27
27
version = u'2.20'
28
28
# The full version, including alpha/beta/rc tags
29
- release = u'2.20.1 '
29
+ release = u'2.20.2 '
30
30
31
31
32
32
# -- General configuration ---------------------------------------------------
Original file line number Diff line number Diff line change @@ -25,7 +25,7 @@ extern "C" {
25
25
26
26
#define LSQUIC_MAJOR_VERSION 2
27
27
#define LSQUIC_MINOR_VERSION 20
28
- #define LSQUIC_PATCH_VERSION 1
28
+ #define LSQUIC_PATCH_VERSION 2
29
29
30
30
/**
31
31
* Engine flags:
Original file line number Diff line number Diff line change @@ -2973,6 +2973,8 @@ ietf_full_conn_ci_destroy (struct lsquic_conn *lconn)
2973
2973
if (conn -> ifc_pub .u .ietf .promises )
2974
2974
lsquic_hash_destroy (conn -> ifc_pub .u .ietf .promises );
2975
2975
}
2976
+ for (i = 0 ; i < N_SITS ; ++ i )
2977
+ lsquic_set64_cleanup (& conn -> ifc_closed_stream_ids [i ]);
2976
2978
lsquic_hash_destroy (conn -> ifc_pub .all_streams );
2977
2979
EV_LOG_CONN_EVENT (LSQUIC_LOG_CONN_ID , "full connection destroyed" );
2978
2980
free (conn -> ifc_errmsg );
Original file line number Diff line number Diff line change 2
2
#ifndef LSQUIC_PUSH_PROMISE_H
3
3
#define LSQUIC_PUSH_PROMISE_H 1
4
4
5
- struct lsquic_hash_elem ;
6
- struct lsquic_stream ;
7
-
8
5
9
6
struct push_promise
10
7
{
11
8
/* A push promise is associated with a single stream, while a stream can
12
9
* have several push promises it depends on. These push promises are
13
10
* 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.
16
12
*/
17
13
SLIST_ENTRY (push_promise ) pp_next ;
18
14
/* Push promises are stored a hash and can be searched by ID */
@@ -62,7 +58,7 @@ struct push_promise
62
58
LSQ_DEBUG("destroy push promise %"PRIu64, (promise_)->pp_id); \
63
59
if ((promise_)->pp_hash_id.qhe_flags & QHE_HASHED) \
64
60
lsquic_hash_erase(all_promises_, &(promise_)->pp_hash_id); \
65
- free(promise); \
61
+ free(promise_); \
66
62
} \
67
63
} \
68
64
else \
You can’t perform that action at this time.
0 commit comments