From 45bb61f6adfe3ac8f717679e1f12d74f5e15d4c1 Mon Sep 17 00:00:00 2001 From: "496148326@qq.com" <496148326@qq.com> Date: Thu, 17 Aug 2023 11:13:10 +0000 Subject: [PATCH] fix the bug of reload_ssl_config that will cause memory leak --- deps/easy/src/io/easy_ssl.c | 7 +++++++ deps/oblib/src/lib/file/file_directory_utils.cpp | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/deps/easy/src/io/easy_ssl.c b/deps/easy/src/io/easy_ssl.c index c0083e0d86..106c3c6cd7 100644 --- a/deps/easy/src/io/easy_ssl.c +++ b/deps/easy/src/io/easy_ssl.c @@ -1268,6 +1268,13 @@ int easy_ssl_ob_config_check(const char *ssl_ca, } else if ((ctx_client = easy_ssl_ctx_load(pool, ssl_ca, ssl_cert, ssl_key, ssl_enc_cert, ssl_enc_key, is_from_file, is_babassl, 0)) == NULL) { ret = EASY_ERROR; easy_error_log("easy_ssl_ctx_load easy_ssl_t failed"); + } else { + if (NULL != ctx_server->ctx) { + SSL_CTX_free(ctx_server->ctx); + } + if (NULL != ctx_client->ctx) { + SSL_CTX_free(ctx_client->ctx); + } } if (pool != NULL) { diff --git a/deps/oblib/src/lib/file/file_directory_utils.cpp b/deps/oblib/src/lib/file/file_directory_utils.cpp index d37a148dcf..f60bbd702f 100644 --- a/deps/oblib/src/lib/file/file_directory_utils.cpp +++ b/deps/oblib/src/lib/file/file_directory_utils.cpp @@ -64,7 +64,11 @@ int FileDirectoryUtils::is_accessible(const char *file_path, bool &result) ret = OB_INVALID_ARGUMENT; LIB_LOG(WARN, "invalid arguments.", KCSTRING(file_path), K(ret)); } else { - result = (0 == access(file_path, R_OK) && ENOENT != errno); + if (0 == access(file_path, R_OK)) { + result = true; + } else { + LIB_LOG(WARN, "access file failed", KERRMSG, K(file_path)); + } } return ret; }