diff options
author | Carlos Martín Nieto <cmn@dwim.me> | 2015-06-08 12:21:36 +0200 |
---|---|---|
committer | Carlos Martín Nieto <cmn@dwim.me> | 2015-06-08 12:21:36 +0200 |
commit | c0d7999263000371e93f7ac1d6c25f32402facd5 (patch) | |
tree | 4910e207a9af4bee6c3c19367753f8e3cb9b1a20 | |
parent | b6011e296e4db6942d71f5a8548d1308353927ee (diff) | |
parent | 20f8edb7a5e438adcd3528ca10d233503e124022 (diff) | |
download | libgit2-c0d7999263000371e93f7ac1d6c25f32402facd5.tar.gz |
Merge pull request #3188 from thentenaar/clean-up-after-openssl
global: Ensure we free our SSL context.
-rw-r--r-- | src/global.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/global.c b/src/global.c index 9f1a0bf10..3f20bfd31 100644 --- a/src/global.c +++ b/src/global.c @@ -116,6 +116,20 @@ static void init_ssl(void) #endif } +/** + * This function aims to clean-up the SSL context which + * we allocated. + */ +static void uninit_ssl(void) +{ +#ifdef GIT_OPENSSL + if (git__ssl_ctx) { + SSL_CTX_free(git__ssl_ctx); + git__ssl_ctx = NULL; + } +#endif +} + int git_openssl_set_locking(void) { #ifdef GIT_OPENSSL @@ -333,6 +347,7 @@ int git_libgit2_shutdown(void) /* Shut down any subsystems that have global state */ git__shutdown(); + uninit_ssl(); ptr = pthread_getspecific(_tls_key); pthread_setspecific(_tls_key, NULL); @@ -391,6 +406,7 @@ int git_libgit2_shutdown(void) git__shutdown(); git__global_state_cleanup(&__state); + uninit_ssl(); return 0; } |