Add check for EVP_CIPHER_CTX_ctrl
authorinoguchi <inoguchi@openbsd.org>
Thu, 20 Jan 2022 11:31:37 +0000 (11:31 +0000)
committerinoguchi <inoguchi@openbsd.org>
Thu, 20 Jan 2022 11:31:37 +0000 (11:31 +0000)
suggestion from tb@

lib/libcrypto/evp/e_rc2.c

index d8c331d..b07fafd 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: e_rc2.c,v 1.13 2022/01/20 11:22:48 inoguchi Exp $ */
+/* $OpenBSD: e_rc2.c,v 1.14 2022/01/20 11:31:37 inoguchi Exp $ */
 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
@@ -150,7 +150,8 @@ rc2_meth_to_magic(EVP_CIPHER_CTX *e)
 {
        int i;
 
-       EVP_CIPHER_CTX_ctrl(e, EVP_CTRL_GET_RC2_KEY_BITS, 0, &i);
+       if (EVP_CIPHER_CTX_ctrl(e, EVP_CTRL_GET_RC2_KEY_BITS, 0, &i) <= 0)
+               return (0);
        if (i == 128)
                return (RC2_128_MAGIC);
        else if (i == 64)
@@ -199,8 +200,9 @@ rc2_get_asn1_type_and_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
                        return (-1);
                if (i > 0 && !EVP_CipherInit_ex(c, NULL, NULL, NULL, iv, -1))
                        return -1;
-               EVP_CIPHER_CTX_ctrl(c, EVP_CTRL_SET_RC2_KEY_BITS,
-                   key_bits, NULL);
+               if (EVP_CIPHER_CTX_ctrl(c, EVP_CTRL_SET_RC2_KEY_BITS,
+                   key_bits, NULL) <= 0)
+                       return -1;
                if (!EVP_CIPHER_CTX_set_key_length(c, key_bits / 8))
                        return -1;
        }