Fix potential NULL pointer dereference
authorJuergen Christ <jchrist@linux.ibm.com>
Mon, 16 Jan 2023 10:37:15 +0000 (11:37 +0100)
committerTomas Mraz <tomas@openssl.org>
Tue, 17 Jan 2023 16:38:29 +0000 (17:38 +0100)
In EC key generation, if allocation of struct ec_gen_ctx fails, values
provided by parameters are copied into the context at represented by a NULL
pointer.  To fix this, prevent copy if allocation fails.

Signed-off-by: Juergen Christ <jchrist@linux.ibm.com>
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/20055)

(cherry picked from commit 235ef96049dbe337a3c3c5d419dacbb5a81df1b3)

providers/implementations/keymgmt/ec_kmgmt.c

index 30c8a3010563e1a20cd26265e4749b9f4d857824..4eafc319c29dc112ad182c65a8fb9dc59905015d 100644 (file)
@@ -1004,10 +1004,10 @@ static void *ec_gen_init(void *provctx, int selection,
         gctx->libctx = libctx;
         gctx->selection = selection;
         gctx->ecdh_mode = 0;
-    }
-    if (!ec_gen_set_params(gctx, params)) {
-        OPENSSL_free(gctx);
-        gctx = NULL;
+        if (!ec_gen_set_params(gctx, params)) {
+            OPENSSL_free(gctx);
+            gctx = NULL;
+        }
     }
     return gctx;
 }