summaryrefslogtreecommitdiff
path: root/program
diff options
context:
space:
mode:
authorfengweihao <[email protected]>2020-09-17 20:02:33 +0800
committerfengweihao <[email protected]>2020-09-17 20:02:33 +0800
commit87fcacf83b40028adb4c8cfa27d5097583ba4381 (patch)
tree67b97202f7936777a2737e42c5ec101333b9fe1e /program
parentf5b162f5d6a8e5eca8723eada8c8bc4eb0a3d6f2 (diff)
内存泄漏修复v2.1.2-202009
1. evhttp解析URL后地址,未调用释放接口
Diffstat (limited to 'program')
-rw-r--r--program/src/cert_session.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/program/src/cert_session.cpp b/program/src/cert_session.cpp
index 21294e2..9c2ff58 100644
--- a/program/src/cert_session.cpp
+++ b/program/src/cert_session.cpp
@@ -1035,6 +1035,10 @@ long __attribute__((__unused__))argl, void __attribute__((__unused__))*argp)
X509_free(pxy_obj->issuer);
if (pxy_obj->key)
EVP_PKEY_free(pxy_obj->key);
+
+ if (pxy_obj->stack_ca)
+ sk_X509_pop_free(pxy_obj->stack_ca, X509_free);
+
free(pxy_obj);
pxy_obj = NULL;
*ad=NULL;
@@ -1544,11 +1548,6 @@ static int http_decode_uri(struct evhttp_request *evh_req, struct tfe_http_reque
struct evkeyvalq params;
const char *uri = evhttp_request_get_uri(evh_req);
- char *decoded_uri = evhttp_decode_uri(uri);
- if (!decoded_uri)
- {
- return -1;
- }
rv = evhttp_parse_query(uri, &params);
if (rv != 0)
{
@@ -1574,6 +1573,8 @@ static int http_decode_uri(struct evhttp_request *evh_req, struct tfe_http_reque
{
request->sni = strdup(sni);
}
+ evhttp_clear_headers(&params);
+
mesa_runtime_log(RLOG_LV_INFO, MODULE_NAME, "[Thread %d]Received request for uri, kering_id:%d, sni:%s, valid:%d",
request->thread_id, request->keyring_id, request->sni, request->is_valid);