Use calloc() in EVP_PKEY_meth_new() instead of malloc() and setting
authortb <tb@openbsd.org>
Fri, 3 Dec 2021 14:19:57 +0000 (14:19 +0000)
committertb <tb@openbsd.org>
Fri, 3 Dec 2021 14:19:57 +0000 (14:19 +0000)
almost all members to 0. Just set the two things that need setting.

ok jsing

lib/libcrypto/evp/pmeth_lib.c

index 359e57d..33924db 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: pmeth_lib.c,v 1.17 2021/12/03 14:18:06 tb Exp $ */
+/* $OpenBSD: pmeth_lib.c,v 1.18 2021/12/03 14:19:57 tb Exp $ */
 /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
  * project 2006.
  */
@@ -224,39 +224,12 @@ EVP_PKEY_meth_new(int id, int flags)
 {
        EVP_PKEY_METHOD *pmeth;
 
-       pmeth = calloc(1, sizeof(EVP_PKEY_METHOD));
-       if (!pmeth)
+       if ((pmeth = calloc(1, sizeof(EVP_PKEY_METHOD))) == NULL)
                return NULL;
 
        pmeth->pkey_id = id;
        pmeth->flags = flags | EVP_PKEY_FLAG_DYNAMIC;
 
-       pmeth->init = 0;
-       pmeth->copy = 0;
-       pmeth->cleanup = 0;
-       pmeth->paramgen_init = 0;
-       pmeth->paramgen = 0;
-       pmeth->keygen_init = 0;
-       pmeth->keygen = 0;
-       pmeth->sign_init = 0;
-       pmeth->sign = 0;
-       pmeth->verify_init = 0;
-       pmeth->verify = 0;
-       pmeth->verify_recover_init = 0;
-       pmeth->verify_recover = 0;
-       pmeth->signctx_init = 0;
-       pmeth->signctx = 0;
-       pmeth->verifyctx_init = 0;
-       pmeth->verifyctx = 0;
-       pmeth->encrypt_init = 0;
-       pmeth->encrypt = 0;
-       pmeth->decrypt_init = 0;
-       pmeth->decrypt = 0;
-       pmeth->derive_init = 0;
-       pmeth->derive = 0;
-       pmeth->ctrl = 0;
-       pmeth->ctrl_str = 0;
-
        return pmeth;
 }