Allow NULL arg to OSSL_STORE_close()
authorDr. David von Oheimb <David.von.Oheimb@siemens.com>
Fri, 22 May 2020 12:56:06 +0000 (14:56 +0200)
committerDr. David von Oheimb <David.von.Oheimb@siemens.com>
Mon, 25 May 2020 18:59:42 +0000 (20:59 +0200)
Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
(Merged from https://github.com/openssl/openssl/pull/11912)

crypto/store/store_lib.c
doc/man3/OSSL_STORE_open.pod

index fb8184d2d9b540cf40d745c563c5636f6153a643..637466ce10552a57e76c04feac8201d5f74e9e56 100644 (file)
@@ -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;
index 1e8ebf7ce1ce91ae88b28a3b3f644fc233f05e95..309390efc3794651f59dc402b2111916e3488f73 100644 (file)
@@ -94,6 +94,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 B<ctx> is NULL it does nothing.
 
 =head1 SUPPORTED SCHEMES