]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Remove handling of NULL sig param in ossl_ecdsa_deterministic_sign
authorBernd Edlinger <bernd.edlinger@hotmail.de>
Thu, 8 Feb 2024 21:44:33 +0000 (22:44 +0100)
committerTomas Mraz <tomas@openssl.org>
Tue, 2 Apr 2024 15:47:29 +0000 (17:47 +0200)
The handling of sig=NULL was broken in this function, but since it
is only used internally and was never called with sig=NULL, it is
better to return an error in that case.

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23529)

crypto/ec/ecdsa_ossl.c

index d7bd427e1b997195a29a55e5ca26457f604b2dea..e60877aa057e53a858b194c73e5be2c937302279 100644 (file)
@@ -102,6 +102,11 @@ int ossl_ecdsa_deterministic_sign(const unsigned char *dgst, int dlen,
     BIGNUM *kinv = NULL, *r = NULL;
     int ret = 0;
 
+    if (sig == NULL) {
+        ERR_raise(ERR_LIB_EC, ERR_R_PASSED_NULL_PARAMETER);
+        return 0;
+    }
+
     *siglen = 0;
     if (!ecdsa_sign_setup(eckey, NULL, &kinv, &r, dgst, dlen,
                           nonce_type, digestname, libctx, propq))
@@ -111,7 +116,7 @@ int ossl_ecdsa_deterministic_sign(const unsigned char *dgst, int dlen,
     if (s == NULL)
         goto end;
 
-    *siglen = i2d_ECDSA_SIG(s, sig != NULL ? &sig : NULL);
+    *siglen = i2d_ECDSA_SIG(s, &sig);
     ECDSA_SIG_free(s);
     ret = 1;
 end: