]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
evp_pkey_ctx_setget_params_to_ctrl(): Always properly set ctx.action_type
authorTomas Mraz <tomas@openssl.org>
Mon, 24 Jun 2024 09:25:12 +0000 (11:25 +0200)
committerTomas Mraz <tomas@openssl.org>
Wed, 26 Jun 2024 09:53:07 +0000 (11:53 +0200)
Fixes #24698

Some applicable translations are bidirectional so they have
NONE action_type. However we need to set the real action_type
in the ctx.

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/24709)

(cherry picked from commit 55c1458303c0fef88e4b2b35a090e9145f3e07eb)

crypto/evp/ctrl_params_translate.c

index 80947b0932f99b0c53fca129a53ac25b48556252..e79943d9257c27bcbb7f60093a188d82467f5bec 100644 (file)
@@ -2777,7 +2777,7 @@ static int evp_pkey_ctx_setget_params_to_ctrl(EVP_PKEY_CTX *pctx,
         fixup_args_fn *fixup = default_fixup_args;
         int ret;
 
-        tmpl.action_type = action_type;
+        ctx.action_type = tmpl.action_type = action_type;
         tmpl.keytype1 = tmpl.keytype2 = keytype;
         tmpl.optype = optype;
         tmpl.param_key = params->key;
@@ -2786,7 +2786,6 @@ static int evp_pkey_ctx_setget_params_to_ctrl(EVP_PKEY_CTX *pctx,
         if (translation != NULL) {
             if (translation->fixup_args != NULL)
                 fixup = translation->fixup_args;
-            ctx.action_type = translation->action_type;
             ctx.ctrl_cmd = translation->ctrl_num;
         }
         ctx.pctx = pctx;