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 <tjh@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
This commit is contained in:
Matt Caswell
2016-04-04 13:53:35 +01:00
parent 6827cb3610
commit 03b0e73555
5 changed files with 23 additions and 11 deletions

View File

@@ -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); 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 =head1 DESCRIPTION
@@ -19,9 +23,12 @@ the identifier B<id> to the list of available compression methods. This
list is globally maintained for all SSL operations within this application. list is globally maintained for all SSL operations within this application.
It cannot be set for specific SSL_CTX or SSL objects. It cannot be set for specific SSL_CTX or SSL objects.
SSL_COMP_free_compression_methods() frees the internal table of In versions of OpenSSL prior to 1.1.0 SSL_COMP_free_compression_methods() freed
compression methods that were built internally, and possibly the internal table of compression methods that were built internally, and
augmented by adding SSL_COMP_add_compression_method(). 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<OPENSSL_init_crypto(3)> and
L<OPENSSL_init_ssl(3)>. From OpenSSL 1.1.0 calling this function does nothing.
=head1 NOTES =head1 NOTES
@@ -73,4 +80,8 @@ The operation failed. Check the error queue to find out the reason.
L<ssl(3)> L<ssl(3)>
=head1 HISTORY
SSL_COMP_free_compression_methods() was deprecated in OpenSSL 1.1.0.
=cut =cut

View File

@@ -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); STACK_OF(SSL_COMP) *SSL_COMP_get_compression_methods(void);
__owur STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP) __owur STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP)
*meths); *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); __owur int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm);
const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr); const SSL_CIPHER *SSL_CIPHER_find(SSL *ssl, const unsigned char *ptr);

View File

@@ -1883,9 +1883,6 @@ STACK_OF(SSL_COMP) *SSL_COMP_set0_compression_methods(STACK_OF(SSL_COMP)
{ {
return meths; return meths;
} }
void SSL_COMP_free_compression_methods(void)
{
}
int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm) int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm)
{ {
return 1; return 1;
@@ -1911,7 +1908,7 @@ static void cmeth_free(SSL_COMP *cm)
OPENSSL_free(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; STACK_OF(SSL_COMP) *old_meths = ssl_comp_methods;
ssl_comp_methods = NULL; ssl_comp_methods = NULL;

View File

@@ -198,9 +198,9 @@ static void ssl_library_stop(void)
#ifndef OPENSSL_NO_COMP #ifndef OPENSSL_NO_COMP
#ifdef OPENSSL_INIT_DEBUG #ifdef OPENSSL_INIT_DEBUG
fprintf(stderr, "OPENSSL_INIT: ssl_library_stop: " fprintf(stderr, "OPENSSL_INIT: ssl_library_stop: "
"SSL_COMP_free_compression_methods()\n"); "ssl_comp_free_compression_methods_intern()\n");
#endif #endif
SSL_COMP_free_compression_methods(); ssl_comp_free_compression_methods_intern();
#endif #endif
} }

View File

@@ -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); __owur int custom_exts_copy(custom_ext_methods *dst, const custom_ext_methods *src);
void custom_exts_free(custom_ext_methods *exts); void custom_exts_free(custom_ext_methods *exts);
void ssl_comp_free_compression_methods_intern(void);
# else # else
# define ssl_init_wbio_buffer SSL_test_functions()->p_ssl_init_wbio_buffer # define ssl_init_wbio_buffer SSL_test_functions()->p_ssl_init_wbio_buffer