diff options
-rw-r--r-- | crypto/err/err.c | 9 | ||||
-rw-r--r-- | crypto/include/internal/err_int.h | 1 | ||||
-rw-r--r-- | crypto/init.c | 4 | ||||
-rw-r--r-- | doc/crypto/ERR_remove_state.pod | 34 | ||||
-rw-r--r-- | doc/crypto/err.pod | 9 | ||||
-rw-r--r-- | include/openssl/err.h | 5 |
6 files changed, 32 insertions, 30 deletions
diff --git a/crypto/err/err.c b/crypto/err/err.c index b0fd19e7ae..fd2ea8194a 100644 --- a/crypto/err/err.c +++ b/crypto/err/err.c @@ -740,7 +740,7 @@ const char *ERR_reason_error_string(unsigned long e) return ((p == NULL) ? NULL : p->string); } -void ERR_remove_thread_state(void) +void err_delete_thread_state(void) { ERR_STATE *state = ERR_get_state(); if (state == NULL) @@ -751,9 +751,14 @@ void ERR_remove_thread_state(void) } #if OPENSSL_API_COMPAT < 0x10000000L +void ERR_remove_thread_state(void *dummy) +{ +} +#endif + +#if OPENSSL_API_COMPAT < 0x10000000L void ERR_remove_state(unsigned long pid) { - ERR_remove_thread_state(); } #endif diff --git a/crypto/include/internal/err_int.h b/crypto/include/internal/err_int.h index 7f1037e939..0aebe8466e 100644 --- a/crypto/include/internal/err_int.h +++ b/crypto/include/internal/err_int.h @@ -13,5 +13,6 @@ void err_load_crypto_strings_int(void); void err_cleanup(void); +void err_delete_thread_state(void); #endif diff --git a/crypto/init.c b/crypto/init.c index 48f74c496c..938bf78a39 100644 --- a/crypto/init.c +++ b/crypto/init.c @@ -351,9 +351,9 @@ static void ossl_init_thread_stop(struct thread_local_inits_st *locals) if (locals->err_state) { #ifdef OPENSSL_INIT_DEBUG fprintf(stderr, "OPENSSL_INIT: ossl_init_thread_stop: " - "ERR_remove_thread_state()\n"); + "err_delete_thread_state()\n"); #endif - ERR_remove_thread_state(); + err_delete_thread_state(); } OPENSSL_free(locals); diff --git a/doc/crypto/ERR_remove_state.pod b/doc/crypto/ERR_remove_state.pod index b011182c47..944365d89c 100644 --- a/doc/crypto/ERR_remove_state.pod +++ b/doc/crypto/ERR_remove_state.pod @@ -2,44 +2,42 @@ =head1 NAME -ERR_remove_thread_state, ERR_remove_state - free a thread's error queue +ERR_remove_thread_state, ERR_remove_state - DEPRECATED =head1 SYNOPSIS - #include <openssl/err.h> - - void ERR_remove_thread_state(void); - Deprecated: #if OPENSSL_API_COMPAT < 0x10000000L void ERR_remove_state(unsigned long pid); #endif -=head1 DESCRIPTION + #if OPENSSL_API_COMPAT < 0x10100000L + void ERR_remove_thread_state(void *); + #endif -ERR_remove_thread_state() frees the error queue associated with the current -thread. +=head1 DESCRIPTION -Since error queue data structures are allocated automatically for new -threads, they must be freed when threads are terminated in order to -avoid memory leaks. +The functions described here were used to free the error queue +associated with the current or specificed thread. -ERR_remove_state is deprecated and has been replaced by -ERR_remove_thread_state. Any argument to this function is ignored and -calling ERR_remove_state is equivalent to B<ERR_remove_thread_state()>. +They are now deprecated and do nothing, please use +OPENSSL_thread_stop() instead. =head1 RETURN VALUE -ERR_remove_thread_state and ERR_remove_state() return no value. +The functions described here return no value. =head1 SEE ALSO -L<err(3)> +L<err(3)>, L<OPENSSL_thread_stop(3)> =head1 HISTORY -ERR_remove_state() -was deprecated in OpenSSL 1.0.0 when ERR_remove_thread_state() was introduced. +ERR_remove_state() was deprecated in OpenSSL 1.0.0 when +ERR_remove_thread_state() was introduced. + +ERR_remove_thread_state() was deprecated in OpenSSL 1.1.0 when the +thread handling functionality was entirely rewritten. =cut diff --git a/doc/crypto/err.pod b/doc/crypto/err.pod index 33cb19d0cf..a590cd756a 100644 --- a/doc/crypto/err.pod +++ b/doc/crypto/err.pod @@ -22,7 +22,6 @@ err - error codes int ERR_GET_REASON(unsigned long e); void ERR_clear_error(void); - void ERR_remove_thread_state(void); char *ERR_error_string(unsigned long e, char *buf); const char *ERR_lib_error_string(unsigned long e); @@ -49,6 +48,10 @@ Deprecated: #endif #if OPENSSL_API_COMPAT < 0x10100000L + void ERR_remove_thread_state(void *); + #endif + + #if OPENSSL_API_COMPAT < 0x10100000L void ERR_free_strings(void) #endif @@ -71,9 +74,6 @@ messages is described in L<ERR_error_string(3)>. L<ERR_clear_error(3)> can be used to clear the error queue. -Note that L<ERR_remove_thread_state(3)> should be used to -avoid memory leaks when threads are terminated. - =head1 ADDING NEW ERROR CODES TO OPENSSL See L<ERR_put_error(3)> if you want to record error codes in the @@ -186,7 +186,6 @@ L<ERR_clear_error(3)>, L<ERR_error_string(3)>, L<ERR_print_errors(3)>, L<ERR_load_crypto_strings(3)>, -L<ERR_remove_thread_state(3)>, L<ERR_put_error(3)>, L<ERR_load_strings(3)>, L<SSL_get_error(3)> diff --git a/include/openssl/err.h b/include/openssl/err.h index ccf2ff72de..e41fdc3efe 100644 --- a/include/openssl/err.h +++ b/include/openssl/err.h @@ -359,9 +359,8 @@ void ERR_load_ERR_strings(void); # define ERR_free_strings() while(0) continue #endif -void ERR_remove_thread_state(void); -DEPRECATEDIN_1_0_0(void ERR_remove_state(unsigned long pid)) /* if zero we - * look it up */ +DEPRECATEDIN_1_1_0(void ERR_remove_thread_state(void *)) +DEPRECATEDIN_1_0_0(void ERR_remove_state(unsigned long pid)) ERR_STATE *ERR_get_state(void); LHASH_OF(ERR_STRING_DATA) *ERR_get_string_table(void); |