diff options
| author | fengweihao <[email protected]> | 2020-09-17 20:02:33 +0800 |
|---|---|---|
| committer | fengweihao <[email protected]> | 2020-09-17 20:02:33 +0800 |
| commit | 87fcacf83b40028adb4c8cfa27d5097583ba4381 (patch) | |
| tree | 67b97202f7936777a2737e42c5ec101333b9fe1e /program | |
| parent | f5b162f5d6a8e5eca8723eada8c8bc4eb0a3d6f2 (diff) | |
内存泄漏修复v2.1.2-202009
1. evhttp解析URL后地址,未调用释放接口
Diffstat (limited to 'program')
| -rw-r--r-- | program/src/cert_session.cpp | 11 |
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, ¶ms); 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(¶ms); + 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); |
