]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Fix memory leaks on OSSL_SERIALIZER_CTX_new_by_EVP_PKEY
authorNicola Tuveri <nic.tuv@gmail.com>
Sun, 28 Jun 2020 14:07:59 +0000 (17:07 +0300)
committerNicola Tuveri <nic.tuv@gmail.com>
Thu, 2 Jul 2020 13:45:14 +0000 (16:45 +0300)
Fixes #12303

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/12304)

crypto/serializer/serializer_pkey.c

index d6120702403fbdb86ae4e9c3152bfee21fdb9873..1e7fc3eafbd79e76ddd4207bf931c972412ccd02 100644 (file)
@@ -292,8 +292,6 @@ OSSL_SERIALIZER_CTX *OSSL_SERIALIZER_CTX_new_by_EVP_PKEY(const EVP_PKEY *pkey,
         const OSSL_PROVIDER *desired_prov = EVP_KEYMGMT_provider(keymgmt);
         OPENSSL_CTX *libctx = ossl_provider_library_context(desired_prov);
         struct selected_serializer_st sel_data;
-        OSSL_PROPERTY_LIST *check = ossl_parse_query(libctx, "type=parameters");
-        OSSL_PROPERTY_LIST *current_props = NULL;
         OSSL_SERIALIZER *first = NULL;
         const char *name;
         int i;
@@ -347,6 +345,9 @@ OSSL_SERIALIZER_CTX *OSSL_SERIALIZER_CTX_new_by_EVP_PKEY(const EVP_PKEY *pkey,
             ser = first;
 
         if (ser != NULL) {
+            OSSL_PROPERTY_LIST *check = NULL, *current_props = NULL;
+
+            check = ossl_parse_query(libctx, "type=parameters");
             current_props =
                 ossl_parse_property(libctx, OSSL_SERIALIZER_properties(ser));
             if (ossl_property_match_count(check, current_props) > 0)