Fix incomplete check on EVP_CIPHER_param_to_asn1()
authorndossche <niels.dossche@ugent.be>
Tue, 31 Jan 2023 12:20:17 +0000 (13:20 +0100)
committerPauli <pauli@openssl.org>
Wed, 1 Feb 2023 23:14:12 +0000 (10:14 +1100)
That function is a wrapper around evp_cipher_param_to_asn1_ex() which
can return 0 as an error value via its ret <= 0 check [1].
Furthermore, all other callers of this function check against <= 0
instead of < 0 and this is also in line with what the documentation
tells us. Fix the incomplete check by changing it to <= 0 as well.

CLA: trivial

[1] https://github.com/openssl/openssl/blob/114d99b46bfb212ffc510865df317ca2c1542623/crypto/evp/evp_lib.c#L164-L165

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/20180)

crypto/pkcs7/pk7_doit.c

index 523ef6689f43d7755a87c0c60185a2a708bf1ad4..148cbc4f9d472ebbc3ac41057a3da97851cd70a8 100644 (file)
@@ -331,7 +331,7 @@ BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio)
                 if (xalg->parameter == NULL)
                     goto err;
             }
-            if (EVP_CIPHER_param_to_asn1(ctx, xalg->parameter) < 0)
+            if (EVP_CIPHER_param_to_asn1(ctx, xalg->parameter) <= 0)
                 goto err;
         }