summaryrefslogtreecommitdiffstats
path: root/crypto/store
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2021-06-28 04:36:33 +0200
committerRichard Levitte <levitte@openssl.org>2021-06-29 09:32:59 +0200
commit19c0b46b83335b36a9816abef4e82f74863a4e0a (patch)
treeef7b506456cf479e538a94ab113444bc273b726f /crypto/store
parentf616ad4b022b8afa8416a7d9e475d02c49164192 (diff)
OSSL_STORE: Fix crash when tracing STORE
Reviewed-by: Shane Lontis <shane.lontis@oracle.com> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/15931)
Diffstat (limited to 'crypto/store')
-rw-r--r--crypto/store/store_lib.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/crypto/store/store_lib.c b/crypto/store/store_lib.c
index 4b31c6f7d5..636a94e832 100644
--- a/crypto/store/store_lib.c
+++ b/crypto/store/store_lib.c
@@ -72,7 +72,7 @@ OSSL_STORE_open_ex(const char *uri, OSSL_LIB_CTX *libctx, const char *propq,
OSSL_STORE_CTX *ctx = NULL;
char *propq_copy = NULL;
int no_loader_found = 1;
- char scheme_copy[256], *p, *schemes[2];
+ char scheme_copy[256], *p, *schemes[2], *scheme = NULL;
size_t schemes_n = 0;
size_t i;
@@ -111,9 +111,10 @@ OSSL_STORE_open_ex(const char *uri, OSSL_LIB_CTX *libctx, const char *propq,
* elsewhere.
*/
for (i = 0; loader_ctx == NULL && i < schemes_n; i++) {
- OSSL_TRACE1(STORE, "Looking up scheme %s\n", schemes[i]);
+ scheme = schemes[i];
+ OSSL_TRACE1(STORE, "Looking up scheme %s\n", scheme);
#ifndef OPENSSL_NO_DEPRECATED_3_0
- if ((loader = ossl_store_get0_loader_int(schemes[i])) != NULL) {
+ if ((loader = ossl_store_get0_loader_int(scheme)) != NULL) {
no_loader_found = 0;
if (loader->open_ex != NULL)
loader_ctx = loader->open_ex(loader, uri, libctx, propq,
@@ -124,7 +125,7 @@ OSSL_STORE_open_ex(const char *uri, OSSL_LIB_CTX *libctx, const char *propq,
#endif
if (loader == NULL
&& (fetched_loader =
- OSSL_STORE_LOADER_fetch(libctx, schemes[i], propq)) != NULL) {
+ OSSL_STORE_LOADER_fetch(libctx, scheme, propq)) != NULL) {
const OSSL_PROVIDER *provider =
OSSL_STORE_LOADER_get0_provider(fetched_loader);
void *provctx = OSSL_PROVIDER_get0_provider_ctx(provider);
@@ -151,7 +152,7 @@ OSSL_STORE_open_ex(const char *uri, OSSL_LIB_CTX *libctx, const char *propq,
*/
goto err;
- OSSL_TRACE1(STORE, "Found loader for scheme %s\n", schemes[i]);
+ OSSL_TRACE1(STORE, "Found loader for scheme %s\n", scheme);
if (loader_ctx == NULL)
/*