Skip to content

Commit

Permalink
CDRIVER-555: Segfault during OpenSSL cleanup routines
Browse files Browse the repository at this point in the history
  • Loading branch information
bjori committed Mar 3, 2015
1 parent 64788c1 commit 746d250
Showing 1 changed file with 8 additions and 3 deletions.
11 changes: 8 additions & 3 deletions src/mongoc/mongoc-ssl.c
Expand Up @@ -535,16 +535,21 @@ _mongoc_ssl_thread_startup (void)
mongoc_mutex_init(&gMongocSslThreadLocks[i]);
}

CRYPTO_set_locking_callback (_mongoc_ssl_thread_locking_callback);
CRYPTO_set_id_callback (_mongoc_ssl_thread_id_callback);
if (!CRYPTO_get_locking_callback ()) {
CRYPTO_set_locking_callback (_mongoc_ssl_thread_locking_callback);
CRYPTO_set_id_callback (_mongoc_ssl_thread_id_callback);
}
}

static void
_mongoc_ssl_thread_cleanup (void)
{
int i;

CRYPTO_set_locking_callback (NULL);
if (CRYPTO_get_locking_callback () == _mongoc_ssl_thread_locking_callback) {
CRYPTO_set_locking_callback (NULL);
CRYPTO_set_id_callback (NULL);
}

for (i = 0; i < CRYPTO_num_locks (); i++) {
mongoc_mutex_destroy (&gMongocSslThreadLocks[i]);
Expand Down

0 comments on commit 746d250

Please sign in to comment.