diff options
author | Tim Hentenaar <tim@hentenaar.com> | 2015-06-04 02:22:10 +0200 |
---|---|---|
committer | Tim Hentenaar <tim@hentenaar.com> | 2015-06-08 09:38:50 +0200 |
commit | 20f8edb7a5e438adcd3528ca10d233503e124022 (patch) | |
tree | 4910e207a9af4bee6c3c19367753f8e3cb9b1a20 | |
parent | b6011e296e4db6942d71f5a8548d1308353927ee (diff) | |
download | libgit2-20f8edb7a5e438adcd3528ca10d233503e124022.tar.gz |
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; } |