OSSL_PARAM_BLD_push_BN_pad(): Allow NULL BIGNUM
authorTomas Mraz <tomas@openssl.org>
Mon, 4 Sep 2023 06:59:53 +0000 (08:59 +0200)
committerTomas Mraz <tomas@openssl.org>
Tue, 5 Sep 2023 10:50:39 +0000 (12:50 +0200)
This was supported previously and regressed
with commit 17898ec6011cc583c5af69ca8f25f5d165ff3e6a

Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21945)

crypto/param_build.c

index 7604f9bd6ce9adf95a582d8beb958969f631eaa5..def71f5718d078dbb408f886041bf97a40659630 100644 (file)
@@ -233,8 +233,8 @@ static int push_BN(OSSL_PARAM_BLD *bld, const char *key,
 int OSSL_PARAM_BLD_push_BN(OSSL_PARAM_BLD *bld, const char *key,
                            const BIGNUM *bn)
 {
-    if (BN_is_negative(bn))
-        return push_BN(bld, key, bn, bn == NULL ? 0 : BN_num_bytes(bn) + 1,
+    if (bn != NULL && BN_is_negative(bn))
+        return push_BN(bld, key, bn, BN_num_bytes(bn) + 1,
                        OSSL_PARAM_INTEGER);
     return push_BN(bld, key, bn, bn == NULL ? 0 : BN_num_bytes(bn),
                    OSSL_PARAM_UNSIGNED_INTEGER);
@@ -243,8 +243,8 @@ int OSSL_PARAM_BLD_push_BN(OSSL_PARAM_BLD *bld, const char *key,
 int OSSL_PARAM_BLD_push_BN_pad(OSSL_PARAM_BLD *bld, const char *key,
                                const BIGNUM *bn, size_t sz)
 {
-    if (BN_is_negative(bn))
-        return push_BN(bld, key, bn, bn == NULL ? 0 : BN_num_bytes(bn),
+    if (bn != NULL && BN_is_negative(bn))
+        return push_BN(bld, key, bn, BN_num_bytes(bn),
                        OSSL_PARAM_INTEGER);
     return push_BN(bld, key, bn, sz, OSSL_PARAM_UNSIGNED_INTEGER);
 }