summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPan Chen <serial115200@outlook.com>2020-11-02 09:53:28 +0800
committerDaniel Golle <daniel@makrotopia.org>2020-11-23 02:16:43 +0000
commit1651a795864e7a8741cb56e7ddd2208070f2cf47 (patch)
tree947a26e722da2b73dd4f31ca4c87bd606a258474
parent5e1bc3429cbf9c3be4db65ef5dbf21ea99cf5b95 (diff)
downloadustream-ssl-1651a795864e7a8741cb56e7ddd2208070f2cf47.tar.gz
ustream-ssl: openssl: fix bio memory leak
free memory of bio method when ustream be freed Signed-off-by: Pan Chen <serial115200@outlook.com>
-rw-r--r--openssl_bio_compat.h7
-rw-r--r--ustream-io-openssl.c1
2 files changed, 8 insertions, 0 deletions
diff --git a/openssl_bio_compat.h b/openssl_bio_compat.h
index 9355c86..39a0455 100644
--- a/openssl_bio_compat.h
+++ b/openssl_bio_compat.h
@@ -28,6 +28,13 @@ static inline BIO_METHOD *BIO_meth_new(int type, const char *name)
return bm;
}
+static inline void BIO_meth_free(BIO_METHOD *bm)
+{
+ if (bm != NULL) {
+ free(bm);
+ }
+}
+
#endif /* OPENSSL_VERSION_NUMBER */
#endif /* OPENSSL_BIO_COMPAT_H */
diff --git a/ustream-io-openssl.c b/ustream-io-openssl.c
index 606ed4a..c9d7fae 100644
--- a/ustream-io-openssl.c
+++ b/ustream-io-openssl.c
@@ -42,6 +42,7 @@ s_ustream_free(BIO *b)
BIO_set_data(b, NULL);
BIO_set_init(b, 0);
BIO_clear_flags(b, ~0);
+ BIO_meth_free(b->method);
return 1;
}