aboutsummaryrefslogtreecommitdiff
path: root/crypto/property
diff options
context:
space:
mode:
authorPauli <ppzgs1@gmail.com>2021-03-13 10:34:49 +1000
committerPauli <ppzgs1@gmail.com>2021-03-16 09:19:20 +1000
commit1e08f3ba9ec495fbd4a4cd6a411dc4e052626eda (patch)
tree5f63db4a780d59bb20bb60a78fd221cf7a880e4e /crypto/property
parentbd55a0be1b5696f643863718e7aa916feccafdf4 (diff)
downloadopenssl-1e08f3ba9ec495fbd4a4cd6a411dc4e052626eda.zip
openssl-1e08f3ba9ec495fbd4a4cd6a411dc4e052626eda.tar.gz
openssl-1e08f3ba9ec495fbd4a4cd6a411dc4e052626eda.tar.bz2
property: default queries create the property values.
Without this, it is necessary to query an algorithm before setting the default property query. With this, the value will be created and the default will work. Fixes #14516 Reviewed-by: Shane Lontis <shane.lontis@oracle.com> (Merged from https://github.com/openssl/openssl/pull/14542)
Diffstat (limited to 'crypto/property')
-rw-r--r--crypto/property/property.c2
-rw-r--r--crypto/property/property_parse.c5
2 files changed, 4 insertions, 3 deletions
diff --git a/crypto/property/property.c b/crypto/property/property.c
index 985709b..b6e295e 100644
--- a/crypto/property/property.c
+++ b/crypto/property/property.c
@@ -357,7 +357,7 @@ int ossl_method_store_fetch(OSSL_METHOD_STORE *store, int nid,
}
if (prop_query != NULL)
- p2 = pq = ossl_parse_query(store->ctx, prop_query);
+ p2 = pq = ossl_parse_query(store->ctx, prop_query, 0);
plp = ossl_ctx_global_properties(store->ctx, 0);
if (plp != NULL && *plp != NULL) {
if (pq == NULL) {
diff --git a/crypto/property/property_parse.c b/crypto/property/property_parse.c
index 9bc89f4..b182f00 100644
--- a/crypto/property/property_parse.c
+++ b/crypto/property/property_parse.c
@@ -385,7 +385,8 @@ err:
return res;
}
-OSSL_PROPERTY_LIST *ossl_parse_query(OSSL_LIB_CTX *ctx, const char *s)
+OSSL_PROPERTY_LIST *ossl_parse_query(OSSL_LIB_CTX *ctx, const char *s,
+ int create_values)
{
STACK_OF(PROPERTY_DEFINITION) *sk;
OSSL_PROPERTY_LIST *res = NULL;
@@ -425,7 +426,7 @@ OSSL_PROPERTY_LIST *ossl_parse_query(OSSL_LIB_CTX *ctx, const char *s)
prop->v.str_val = ossl_property_true;
goto skip_value;
}
- if (!parse_value(ctx, &s, prop, 0))
+ if (!parse_value(ctx, &s, prop, create_values))
prop->type = PROPERTY_TYPE_VALUE_UNDEFINED;
skip_value: