mirror of
https://github.com/openssl/openssl.git
synced 2024-12-18 22:43:41 +08:00
Add error return for OPENSSL_INIT_set_config_filename()
The OPENSSL_INIT_set_config_filename() function can fail so ensure that it provides a suitable error code. GitHub Issue #920 Reviewed-by: Rich Salz <rsalz@openssl.org>
This commit is contained in:
parent
7d37818dac
commit
dae00d631f
@ -339,11 +339,21 @@ OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void)
|
||||
|
||||
|
||||
#ifndef OPENSSL_NO_STDIO
|
||||
void OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings,
|
||||
const char *config_file)
|
||||
int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings,
|
||||
const char *config_file)
|
||||
{
|
||||
char *new_config_file = NULL;
|
||||
|
||||
if (config_file != NULL) {
|
||||
new_config_file = strdup(config_file);
|
||||
if (new_config_file == NULL)
|
||||
return 0;
|
||||
}
|
||||
|
||||
free(settings->config_name);
|
||||
settings->config_name = config_file == NULL ? NULL : strdup(config_file);
|
||||
settings->config_name = new_config_file;
|
||||
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -16,8 +16,9 @@ initialisation and deinitialisation functions
|
||||
void OPENSSL_thread_stop(void);
|
||||
|
||||
OPENSSL_INIT_SETTINGS *OPENSSL_init_new(void);
|
||||
OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *init, const char* name);
|
||||
OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *init);
|
||||
int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *init,
|
||||
const char* name);
|
||||
void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *init);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@ -208,8 +209,8 @@ using static linking should also call OPENSSL_thread_stop().
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
The functions OPENSSL_init_crypto and OPENSSL_atexit() returns 1 on success or
|
||||
0 on error.
|
||||
The functions OPENSSL_init_crypto, OPENSSL_atexit() and
|
||||
OPENSSL_INIT_set_config_filename() return 1 on success or 0 on error.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
@ -218,7 +219,8 @@ L<OPENSSL_init_ssl(3)>
|
||||
=head1 HISTORY
|
||||
|
||||
The OPENSSL_init_crypto(), OPENSSL_cleanup(), OPENSSL_atexit(),
|
||||
and OPENSSL_thread_stop() functions were added in OpenSSL 1.1.0.
|
||||
OPENSSL_thread_stop(), OPENSSL_init_new(), OPENSSL_INIT_set_config_filename()
|
||||
and OPENSSL_INIT_free() functions were added in OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
|
@ -380,8 +380,8 @@ void OPENSSL_thread_stop(void);
|
||||
/* Low-level control of initialization */
|
||||
OPENSSL_INIT_SETTINGS *OPENSSL_INIT_new(void);
|
||||
#ifndef OPENSSL_NO_STDIO
|
||||
void OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings,
|
||||
const char *config_file);
|
||||
int OPENSSL_INIT_set_config_filename(OPENSSL_INIT_SETTINGS *settings,
|
||||
const char *config_file);
|
||||
#endif
|
||||
void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user