Add and use OPENSSL_zalloc
[openssl.git] / engines / e_4758cca.c
index 3b593c79c5943f2c8fbd262b28a848c73bf31a1c..396f2c2b6ab33e94a64f454f56981c8b2d664aca 100644 (file)
@@ -290,28 +290,21 @@ static int ibm_4758_cca_init(ENGINE *e)
         CCA4758err(CCA4758_F_IBM_4758_CCA_INIT, CCA4758_R_DSO_FAILURE);
         goto err;
     }
+#define BINDIT(t, name) (t)DSO_bind_func(dso, name)
 #  ifndef OPENSSL_NO_RSA
-    if (!(keyRecordRead = (F_KEYRECORDREAD)
-          DSO_bind_func(dso, n_keyRecordRead)) ||
-        !(randomNumberGenerate = (F_RANDOMNUMBERGENERATE)
-          DSO_bind_func(dso, n_randomNumberGenerate)) ||
-        !(digitalSignatureGenerate = (F_DIGITALSIGNATUREGENERATE)
-          DSO_bind_func(dso, n_digitalSignatureGenerate)) ||
-        !(digitalSignatureVerify = (F_DIGITALSIGNATUREVERIFY)
-          DSO_bind_func(dso, n_digitalSignatureVerify)) ||
-        !(publicKeyExtract = (F_PUBLICKEYEXTRACT)
-          DSO_bind_func(dso, n_publicKeyExtract)) ||
-        !(pkaEncrypt = (F_PKAENCRYPT)
-          DSO_bind_func(dso, n_pkaEncrypt)) || !(pkaDecrypt = (F_PKADECRYPT)
-                                                 DSO_bind_func(dso,
-                                                               n_pkaDecrypt)))
+    if ((keyRecordRead = BINDIT(F_KEYRECORDREAD, n_keyRecordRead)) == NULL
+        || (randomNumberGenerate = BINDIT(F_RANDOMNUMBERGENERATE, n_randomNumberGenerate)) == NULL
+        || (digitalSignatureGenerate = BINDIT(F_DIGITALSIGNATUREGENERATE, n_digitalSignatureGenerate)) == NULL
+        || (digitalSignatureVerify = BINDIT(F_DIGITALSIGNATUREVERIFY, n_digitalSignatureVerify)) == NULL
+        || (publicKeyExtract = BINDIT(F_PUBLICKEYEXTRACT, n_publicKeyExtract)) == NULL
+        || (pkaEncrypt = BINDIT(F_PKAENCRYPT, n_pkaEncrypt)) == NULL
+        || (pkaDecrypt = BINDIT(F_PKADECRYPT, n_pkaDecrypt)) == NULL)
     {
         CCA4758err(CCA4758_F_IBM_4758_CCA_INIT, CCA4758_R_DSO_FAILURE);
         goto err;
     }
 #  else
-    if (!(randomNumberGenerate = (F_RANDOMNUMBERGENERATE)
-          DSO_bind_func(dso, n_randomNumberGenerate))) {
+    if ((randomNumberGenerate = BINDIT(F_RANDOMNUMBERGENERATE, n_randomNumberGenerate)) == NULL) {
         CCA4758err(CCA4758_F_IBM_4758_CCA_INIT, CCA4758_R_DSO_FAILURE);
         goto err;
     }
@@ -324,8 +317,7 @@ static int ibm_4758_cca_init(ENGINE *e)
 
     return 1;
  err:
-    if (dso)
-        DSO_free(dso);
+    DSO_free(dso);
     dso = NULL;
 
 #  ifndef OPENSSL_NO_RSA
@@ -474,8 +466,7 @@ static EVP_PKEY *ibm_4758_load_privkey(ENGINE *e, const char *key_id,
 
     return res;
  err:
-    if (keyToken)
-        OPENSSL_free(keyToken);
+    OPENSSL_free(keyToken);
     return NULL;
 }
 
@@ -544,8 +535,7 @@ static EVP_PKEY *ibm_4758_load_pubkey(ENGINE *e, const char *key_id,
 
     return res;
  err:
-    if (keyToken)
-        OPENSSL_free(keyToken);
+    OPENSSL_free(keyToken);
     return NULL;
 }
 
@@ -709,10 +699,8 @@ static int cca_rsa_verify(int type, const unsigned char *m,
                            &keyTokenLength, keyToken, &length, hashBuffer,
                            &lsiglen, (unsigned char *)sigbuf);
 
-    if (type == NID_sha1 || type == NID_md5) {
-        OPENSSL_cleanse(hashBuffer, keyLength + 1);
-        OPENSSL_free(hashBuffer);
-    }
+    if (type == NID_sha1 || type == NID_md5)
+        OPENSSL_clear_free(hashBuffer, keyLength + 1);
 
     return ((returnCode || reasonCode) ? 0 : 1);
 }
@@ -820,10 +808,8 @@ static int cca_rsa_sign(int type, const unsigned char *m, unsigned int m_len,
                              &keyTokenLength, keyToken, &length, hashBuffer,
                              &outputLength, &outputBitLength, sigret);
 
-    if (type == NID_sha1 || type == NID_md5) {
-        OPENSSL_cleanse(hashBuffer, keyLength + 1);
-        OPENSSL_free(hashBuffer);
-    }
+    if (type == NID_sha1 || type == NID_md5)
+        OPENSSL_clear_free(hashBuffer, keyLength + 1);
 
     *siglen = outputLength;
 
@@ -928,8 +914,7 @@ static int cca_get_random_bytes(unsigned char *buf, int num)
 static void cca_ex_free(void *obj, void *item, CRYPTO_EX_DATA *ad, int idx,
                         long argl, void *argp)
 {
-    if (item)
-        OPENSSL_free(item);
+    OPENSSL_free(item);
 }
 #  endif