From 03b0e735556ed31c3e9096350e7a4563ea9d34b7 Mon Sep 17 00:00:00 2001 From: Matt Caswell Date: Mon, 4 Apr 2016 13:53:35 +0100 Subject: [PATCH] Deprecate SSL_COMP_free_compression_methods() and make it a no-op SSL_COMP_free_compression_methods() should not be called expicitly - we should leave auto-deinit to clean this up instead. Reviewed-by: Tim Hudson Reviewed-by: Richard Levitte --- doc/ssl/SSL_COMP_add_compression_method.pod | 19 +++++++++++++++---- include/openssl/ssl.h | 4 +++- ssl/ssl_ciph.c | 5 +---- ssl/ssl_init.c | 4 ++-- ssl/ssl_locl.h | 2 ++ 5 files changed, 23 insertions(+), 11 deletions(-) diff --git a/doc/ssl/SSL_COMP_add_compression_method.pod b/doc/ssl/SSL_COMP_add_compression_method.pod index 6a0caffff9..b08a4247cc 100644 --- a/doc/ssl/SSL_COMP_add_compression_method.pod +++ b/doc/ssl/SSL_COMP_add_compression_method.pod @@ -10,7 +10,11 @@ SSL_COMP_add_compression_method, SSL_COMP_free_compression_methods - handle SSL/ int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); - +void SSL_COMP_free_compression_methods(void); +Deprecated: + + #if OPENSSL_API_COMPAT < 0x10100000L + # define SSL_COMP_free_compression_methods() + #endif =head1 DESCRIPTION @@ -19,9 +23,12 @@ the identifier B to the list of available compression methods. This list is globally maintained for all SSL operations within this application. It cannot be set for specific SSL_CTX or SSL objects. -SSL_COMP_free_compression_methods() frees the internal table of -compression methods that were built internally, and possibly -augmented by adding SSL_COMP_add_compression_method(). +In versions of OpenSSL prior to 1.1.0 SSL_COMP_free_compression_methods() freed +the internal table of compression methods that were built internally, and +possibly augmented by adding SSL_COMP_add_compression_method(). However this is +now unncessary from version 1.1.0. No explicit initialisation or +de-initialisation is necessary. See L and +L. From OpenSSL 1.1.0 calling this function does nothing. =head1 NOTES @@ -73,4 +80,8 @@ The operation failed. Check the error queue to find out the reason. L +=head1 HISTORY + +SSL_COMP_free_compression_methods() was deprecated in OpenSSL 1.1.0. + =cut diff --git a/include/openssl/ssl.h b/include/openssl/ssl.h index b085c9ebb2..6b66407edc 100644 --- a/include/openssl/ssl.h +++ b/include/openssl/ssl.h @@ -1835,7 +1835,9 @@ __owur const char *SSL_COMP_get_name(const COMP_METHOD *comp); STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void); __owur STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) *meths); -void SSL_COMP_free_compression_methods(void); +#if OPENSSL_API_COMPAT < 0x10100000L +# define SSL_COMP_free_compression_methods() +#endif __owur int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm); const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr); diff --git a/ssl/ssl_ciph.c b/ssl/ssl_ciph.c index 46fa3e89c6..1faa2ea160 100644 --- a/ssl/ssl_ciph.c +++ b/ssl/ssl_ciph.c @@ -1883,9 +1883,6 @@ STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) { return meths; } -void SSL_COMP_free_compression_methods(void) -{ -} int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm) { return 1; @@ -1911,7 +1908,7 @@ static void cmeth_free(SSL_COMP *cm) OPENSSL_free(cm); } -void SSL_COMP_free_compression_methods(void) +void ssl_comp_free_compression_methods_intern(void) { STACK_OF(SSL_COMP) *old_meths = ssl_comp_methods; ssl_comp_methods = NULL; diff --git a/ssl/ssl_init.c b/ssl/ssl_init.c index 2462fa5eab..2f8034a7d3 100644 --- a/ssl/ssl_init.c +++ b/ssl/ssl_init.c @@ -198,9 +198,9 @@ static void ssl_library_stop(void) #ifndef OPENSSL_NO_COMP #ifdef OPENSSL_INIT_DEBUG fprintf(stderr, "OPENSSL_INIT: ssl_library_stop: " - "SSL_COMP_free_compression_methods()\n"); + "ssl_comp_free_compression_methods_intern()\n"); #endif - SSL_COMP_free_compression_methods(); + ssl_comp_free_compression_methods_intern(); #endif } diff --git a/ssl/ssl_locl.h b/ssl/ssl_locl.h index c02dbbbe47..1596091e81 100644 --- a/ssl/ssl_locl.h +++ b/ssl/ssl_locl.h @@ -2195,6 +2195,8 @@ __owur int custom_ext_add(SSL *s, int server, __owur int custom_exts_copy(custom_ext_methods *dst, const custom_ext_methods *src); void custom_exts_free(custom_ext_methods *exts); +void ssl_comp_free_compression_methods_intern(void); + # else # define ssl_init_wbio_buffer SSL_test_functions()->p_ssl_init_wbio_buffer -- 2.40.0