The branch OpenSSL_1_1_1-stable has been updated via 1bde3c65baea32a3d87fe80f04f2f6594e74992d (commit) via 767b86ee52227b1c8e5c783b9c3850fa65338058 (commit) from 294beba4ebfbc0b5e7d86e6b11d9f1c37ad26867 (commit)
- Log ----------------------------------------------------------------- commit 1bde3c65baea32a3d87fe80f04f2f6594e74992d Author: Dr. David von Oheimb <david.von.ohe...@siemens.com> Date: Sat May 23 14:23:14 2020 +0200 Fix B<..> vs. I<..> and add two remarks in OSSL_STORE_open.pod Reviewed-by: Tomas Mraz <tm...@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11912) commit 767b86ee52227b1c8e5c783b9c3850fa65338058 Author: Dr. David von Oheimb <david.von.ohe...@siemens.com> Date: Fri May 22 14:56:06 2020 +0200 Allow NULL arg to OSSL_STORE_close() Reviewed-by: Tomas Mraz <tm...@fedoraproject.org> (Merged from https://github.com/openssl/openssl/pull/11912) ----------------------------------------------------------------------- Summary of changes: crypto/store/store_lib.c | 6 +++++- doc/man3/OSSL_STORE_open.pod | 31 ++++++++++++++++++------------- 2 files changed, 23 insertions(+), 14 deletions(-) diff --git a/crypto/store/store_lib.c b/crypto/store/store_lib.c index fb8184d2d9..637466ce10 100644 --- a/crypto/store/store_lib.c +++ b/crypto/store/store_lib.c @@ -218,7 +218,11 @@ int OSSL_STORE_eof(OSSL_STORE_CTX *ctx) int OSSL_STORE_close(OSSL_STORE_CTX *ctx) { - int loader_ret = ctx->loader->close(ctx->loader_ctx); + int loader_ret; + + if (ctx == NULL) + return 1; + loader_ret = ctx->loader->close(ctx->loader_ctx); OPENSSL_free(ctx); return loader_ret; diff --git a/doc/man3/OSSL_STORE_open.pod b/doc/man3/OSSL_STORE_open.pod index 1e8ebf7ce1..432ba9da92 100644 --- a/doc/man3/OSSL_STORE_open.pod +++ b/doc/man3/OSSL_STORE_open.pod @@ -46,21 +46,22 @@ OSSL_STORE_close() to work together. =head2 Functions -OSSL_STORE_open() takes a uri or path B<uri>, password UI method -B<ui_method> with associated data B<ui_data>, and post processing -callback B<post_process> with associated data B<post_process_data>, +OSSL_STORE_open() takes a uri or path I<uri>, password UI method +I<ui_method> with associated data I<ui_data>, and post processing +callback I<post_process> with associated data I<post_process_data>, opens a channel to the data located at that URI and returns a B<OSSL_STORE_CTX> with all necessary internal information. -The given B<ui_method> and B<ui_data_data> will be reused by all -functions that use B<OSSL_STORE_CTX> when interaction is needed. -The given B<post_process> and B<post_process_data> will be reused by +The given I<ui_method> and I<ui_data> will be reused by all +functions that use B<OSSL_STORE_CTX> when interaction is needed, +for instance to provide a password. +The given I<post_process> and I<post_process_data> will be reused by OSSL_STORE_load() to manipulate or drop the value to be returned. -The B<post_process> function drops values by returning B<NULL>, which +The I<post_process> function drops values by returning NULL, which will cause OSSL_STORE_load() to start its process over with loading -the next object, until B<post_process> returns something other than -B<NULL>, or the end of data is reached as indicated by OSSL_STORE_eof(). +the next object, until I<post_process> returns something other than +NULL, or the end of data is reached as indicated by OSSL_STORE_eof(). -OSSL_STORE_ctrl() takes a B<OSSL_STORE_CTX>, and command number B<cmd> and +OSSL_STORE_ctrl() takes a B<OSSL_STORE_CTX>, and command number I<cmd> and more arguments not specified here. The available loader specific command numbers and arguments they each take depends on the loader that's used and is documented together with @@ -94,6 +95,7 @@ OSSL_STORE_eof() shows that the end of data has been reached. OSSL_STORE_close() takes a B<OSSL_STORE_CTX>, closes the channel that was opened by OSSL_STORE_open() and frees all other information that was stored in the B<OSSL_STORE_CTX>, as well as the B<OSSL_STORE_CTX> itself. +If I<ctx> is NULL it does nothing. =head1 SUPPORTED SCHEMES @@ -123,12 +125,12 @@ See L<passphrase-encoding(7)> for further information. =head1 RETURN VALUES OSSL_STORE_open() returns a pointer to a B<OSSL_STORE_CTX> on success, or -B<NULL> on failure. +NULL on failure. OSSL_STORE_load() returns a pointer to a B<OSSL_STORE_INFO> on success, or -B<NULL> on error or when end of data is reached. +NULL on error or when end of data is reached. Use OSSL_STORE_error() and OSSL_STORE_eof() to determine the meaning of a -returned B<NULL>. +returned NULL. OSSL_STORE_eof() returns 1 if the end of data has been reached, otherwise 0. @@ -149,6 +151,9 @@ OSSL_STORE_CTX(), OSSL_STORE_post_process_info_fn(), OSSL_STORE_open(), OSSL_STORE_ctrl(), OSSL_STORE_load(), OSSL_STORE_eof() and OSSL_STORE_close() were added in OpenSSL 1.1.1. +Handling of NULL I<ctx> argument for OSSL_STORE_close() +was introduced in OpenSSL 1.1.1h. + =head1 COPYRIGHT Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.