소스 검색

tls: explicit libssl v1.1+ cleanup when module is destroyed

- OPENSSL_cleanup() explicitely executed for libssl v1.1+ when tls
  module is destroyed, to avoid being executed again on final exit
  (due to atexit() callback), because at that moment shared memory
  is already destroyed and attempts to access the locals will result
  in cored dump
- retported by Victor Seva, GH #1189
Daniel-Constantin Mierla 8 년 전
부모
커밋
00eb71da83
1개의 변경된 파일6개의 추가작업 그리고 0개의 파일을 삭제
  1. 6 0
      src/modules/tls/tls_init.c

+ 6 - 0
src/modules/tls/tls_init.c

@@ -847,4 +847,10 @@ void destroy_tls_h(void)
 	tls_destroy_cfg();
 	tls_destroy_locks();
 	tls_ct_wq_destroy();
+#if OPENSSL_VERSION_NUMBER >= 0x010100000L
+	/* explicit execution of libssl cleanup to avoid being executed again
+	 * by atexit(), when shm is gone */
+	DBG("executing openssl v1.1+ cleanup\n");
+	OPENSSL_cleanup();
+#endif
 }