Deprecate CONF_modules_free() and make it a no-op
CONF_modules_free() 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:
@@ -60,7 +60,7 @@
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <openssl/crypto.h>
|
#include <openssl/crypto.h>
|
||||||
#include "internal/cryptlib.h"
|
#include "internal/cryptlib.h"
|
||||||
#include <openssl/conf.h>
|
#include "internal/conf.h"
|
||||||
#include "internal/dso.h"
|
#include "internal/dso.h"
|
||||||
#include <openssl/x509.h>
|
#include <openssl/x509.h>
|
||||||
|
|
||||||
@@ -460,7 +460,7 @@ int CONF_module_add(const char *name, conf_init_func *ifunc,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void CONF_modules_free(void)
|
void conf_modules_free_intern(void)
|
||||||
{
|
{
|
||||||
CONF_modules_finish();
|
CONF_modules_finish();
|
||||||
CONF_modules_unload(1);
|
CONF_modules_unload(1);
|
||||||
|
|||||||
@@ -457,7 +457,7 @@ void OPENSSL_cleanup(void)
|
|||||||
fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
|
fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
|
||||||
"rand_cleanup_intern()\n");
|
"rand_cleanup_intern()\n");
|
||||||
fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
|
fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
|
||||||
"CONF_modules_free()\n");
|
"conf_modules_free_intern()\n");
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
|
fprintf(stderr, "OPENSSL_INIT: OPENSSL_cleanup: "
|
||||||
"engine_cleanup_intern()\n");
|
"engine_cleanup_intern()\n");
|
||||||
@@ -477,11 +477,11 @@ void OPENSSL_cleanup(void)
|
|||||||
* must be called before engine_cleanup_intern()
|
* must be called before engine_cleanup_intern()
|
||||||
* - ENGINEs use CRYPTO_EX_DATA and therefore, must be cleaned up
|
* - ENGINEs use CRYPTO_EX_DATA and therefore, must be cleaned up
|
||||||
* before the ex data handlers are wiped in CRYPTO_cleanup_all_ex_data().
|
* before the ex data handlers are wiped in CRYPTO_cleanup_all_ex_data().
|
||||||
* - CONF_modules_free() can end up in ENGINE code so must be called before
|
* - conf_modules_free_intern() can end up in ENGINE code so must be called
|
||||||
* engine_cleanup_intern()
|
* before engine_cleanup_intern()
|
||||||
*/
|
*/
|
||||||
rand_cleanup_intern();
|
rand_cleanup_intern();
|
||||||
CONF_modules_free();
|
conf_modules_free_intern();
|
||||||
#ifndef OPENSSL_NO_ENGINE
|
#ifndef OPENSSL_NO_ENGINE
|
||||||
engine_cleanup_intern();
|
engine_cleanup_intern();
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -9,10 +9,15 @@
|
|||||||
|
|
||||||
#include <openssl/conf.h>
|
#include <openssl/conf.h>
|
||||||
|
|
||||||
void CONF_modules_free(void);
|
|
||||||
void CONF_modules_finish(void);
|
void CONF_modules_finish(void);
|
||||||
void CONF_modules_unload(int all);
|
void CONF_modules_unload(int all);
|
||||||
|
|
||||||
|
Deprecated:
|
||||||
|
|
||||||
|
#if OPENSSL_API_COMPAT < 0x10100000L
|
||||||
|
# define CONF_modules_free()
|
||||||
|
#endif
|
||||||
|
|
||||||
=head1 DESCRIPTION
|
=head1 DESCRIPTION
|
||||||
|
|
||||||
CONF_modules_free() closes down and frees up all memory allocated by all
|
CONF_modules_free() closes down and frees up all memory allocated by all
|
||||||
@@ -27,8 +32,10 @@ B<all> is B<1> all modules, including builtin modules will be unloaded.
|
|||||||
|
|
||||||
=head1 NOTES
|
=head1 NOTES
|
||||||
|
|
||||||
Normally applications will only call CONF_modules_free() at application to
|
Normally in versions of OpenSSL prior to 1.1.0 applications will only call
|
||||||
tidy up any configuration performed.
|
CONF_modules_free() at application to tidy up any configuration performed. From
|
||||||
|
1.1.0 CONF_modules_free() is deprecated an no explicit CONF cleanup as required
|
||||||
|
at all. For more information see L<OPENSSL_init_crypto(3)>.
|
||||||
|
|
||||||
=head1 RETURN VALUE
|
=head1 RETURN VALUE
|
||||||
|
|
||||||
@@ -39,4 +46,8 @@ None of the functions return a value.
|
|||||||
L<conf(5)>, L<OPENSSL_config(3)>,
|
L<conf(5)>, L<OPENSSL_config(3)>,
|
||||||
L<CONF_modules_load_file(3)>
|
L<CONF_modules_load_file(3)>
|
||||||
|
|
||||||
|
=head1 HISTORY
|
||||||
|
|
||||||
|
CONF_modules_free() was deprecated in OpenSSL 1.1.0.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|||||||
@@ -23,9 +23,6 @@ Multiple calls have no effect.
|
|||||||
OPENSSL_no_config() disables configuration. If called before OPENSSL_config()
|
OPENSSL_no_config() disables configuration. If called before OPENSSL_config()
|
||||||
no configuration takes place.
|
no configuration takes place.
|
||||||
|
|
||||||
Applications should free up configuration at application closedown by calling
|
|
||||||
CONF_modules_free().
|
|
||||||
|
|
||||||
If the application is built with B<OPENSSL_LOAD_CONF> defined, then a
|
If the application is built with B<OPENSSL_LOAD_CONF> defined, then a
|
||||||
call to OpenSSL_add_all_algorithms() will implicitly call OPENSSL_config()
|
call to OpenSSL_add_all_algorithms() will implicitly call OPENSSL_config()
|
||||||
first.
|
first.
|
||||||
@@ -57,8 +54,7 @@ Neither OPENSSL_config() nor OPENSSL_no_config() return a value.
|
|||||||
=head1 SEE ALSO
|
=head1 SEE ALSO
|
||||||
|
|
||||||
L<conf(5)>,
|
L<conf(5)>,
|
||||||
L<CONF_modules_load_file(3)>,
|
L<CONF_modules_load_file(3)>
|
||||||
L<CONF_modules_free(3)>
|
|
||||||
|
|
||||||
=head1 HISTORY
|
=head1 HISTORY
|
||||||
|
|
||||||
|
|||||||
@@ -53,6 +53,7 @@ struct ossl_init_settings_st {
|
|||||||
|
|
||||||
void openssl_config_internal(const char *config_name);
|
void openssl_config_internal(const char *config_name);
|
||||||
void openssl_no_config_internal(void);
|
void openssl_no_config_internal(void);
|
||||||
|
void conf_modules_free_intern(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -186,7 +186,9 @@ int CONF_modules_load_file(const char *filename, const char *appname,
|
|||||||
unsigned long flags);
|
unsigned long flags);
|
||||||
void CONF_modules_unload(int all);
|
void CONF_modules_unload(int all);
|
||||||
void CONF_modules_finish(void);
|
void CONF_modules_finish(void);
|
||||||
void CONF_modules_free(void);
|
#if OPENSSL_API_COMPAT < 0x10100000L
|
||||||
|
# define CONF_modules_free()
|
||||||
|
#endif
|
||||||
int CONF_module_add(const char *name, conf_init_func *ifunc,
|
int CONF_module_add(const char *name, conf_init_func *ifunc,
|
||||||
conf_finish_func *ffunc);
|
conf_finish_func *ffunc);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user