Безопасно ли очищать OpenSSL несколько раз? - PullRequest
0 голосов
/ 24 апреля 2020

В моем приложении использовались две сторонние библиотеки. Обе они используют библиотеку OpenSSL как .dll (это означает, что обе библиотеки имеют один общий экземпляр OpenSSL).

Обе они имеют схожие OpenSSL_CleanUp функции:

void OpenSSL_CleanUp() {
  CRYPTO_set_locking_callback(NULL);//1
  CRYPTO_set_id_callback(NULL);//1
  EVP_cleanup();//1 and 2
  CRYPTO_cleanup_all_ex_data();//1 and 2
  ERR_remove_state(0);//1 and 2
  ERR_free_strings();//1 and 2
}
//1 - this line is present in first lib
//2 - this line is present in second lib

Life Время этих библиотек отличается. Первый может быть загружен несколько раз. Второй будет работать до завершения работы приложения.

Мое приложение выглядит так, как будто оно работает нормально, но, боюсь, побочный эффект не очевиден.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...