diff options
author | Pauli <paul.dale@oracle.com> | 2019-11-11 04:17:32 +0300 |
---|---|---|
committer | Pauli <paul.dale@oracle.com> | 2019-11-18 11:51:26 +0300 |
commit | bdbf2df2e685ae653f3c683ce2f734eb0c0888e0 (patch) | |
tree | 832a32165746bb33f8be34f196525031ac3a93bf /include/internal | |
parent | f75abcc0f073b1c3e2d81df3fcde8fe45dd1e61f (diff) |
Properties: make query cache reference count aware.
The property query cache was not reference count aware and this could cause
problems if the property store removes an algorithm while it is being returned
from an asynchronous query. This change makes the cache reference count aware
and avoids disappearing algorithms.
A side effect of this change is that the reference counts are now owned by the
cache and store.
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/10408)
Diffstat (limited to 'include/internal')
-rw-r--r-- | include/internal/property.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/internal/property.h b/include/internal/property.h index a3a4a62be6..7ffd588073 100644 --- a/include/internal/property.h +++ b/include/internal/property.h @@ -36,5 +36,7 @@ int ossl_method_store_set_global_properties(OSSL_METHOD_STORE *store, int ossl_method_store_cache_get(OSSL_METHOD_STORE *store, int nid, const char *prop_query, void **result); int ossl_method_store_cache_set(OSSL_METHOD_STORE *store, int nid, - const char *prop_query, void *result); + const char *prop_query, void *result, + int (*method_up_ref)(void *), + void (*method_destruct)(void *)); #endif |