aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/evp/openbsd_hw.c
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2016-08-29 02:21:50 +0900
committerKazuki Yamaguchi <k@rhe.jp>2016-08-29 02:21:50 +0900
commitfbb5b7a6aee9a2afb7feb98885abedf066639f8a (patch)
tree26bb5e78bd5c14b1701b8a9ad3a6d381ce9bdc76 /crypto/evp/openbsd_hw.c
parent814931e32985229c74c5309f805d62a859fa00a8 (diff)
parent7fb82d06746f7503323a7846448e095bf8f5ef9e (diff)
downloadopenssl-OpenSSL_1_0_2-stable.tar.gz
Merge branch 'OpenSSL_1_0_2-stable' of https://github.com/openssl/openssl into OpenSSL_1_0_2-stableOpenSSL_1_0_2-stable
* 'OpenSSL_1_0_2-stable' of https://github.com/openssl/openssl: (57 commits) SRP_create_verifier does not check for NULL before OPENSSL_cleanse Improve the definition of STITCHED_CALL in e_rc4_hmac_md5.c Fix a few leaks in X509_REQ_to_X509. Fix a possible leak on NETSCAPE_SPKI_verify failure. Add basic test for Cisco DTLS1_BAD_VER and record replay handling Fix ubsan 'left shift of negative value -1' error in satsub64be() Fix SSL_export_keying_material() for DTLS1_BAD_VER Fix the no-tls1 option ec/asm/ecp_nistz256-x86_64.pl: /cmovb/cmovc/ as nasm doesn't recognize cmovb. ec/ecp_nistz256: harmonize is_infinity with ec_GFp_simple_is_at_infinity. ec/asm/ecp_nistz256-x86_64.pl: addition to perform stricter reduction. Always use session_ctx when removing a session Avoid overflow in MDC2_Update() SWEET32 (CVE-2016-2183): Move DES from HIGH to MEDIUM Fix no-ec Sanity check ticket length. mk1mf: dtlstest needs ssltestlib, include it with a hack Don't check for malloc failure twice. Fix overflow check in BN_bn2dec() RT2676: Reject RSA eponent if even or 1 VMS: Use strict refdef extern model when building library object files ...
Diffstat (limited to 'crypto/evp/openbsd_hw.c')
-rw-r--r--crypto/evp/openbsd_hw.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/crypto/evp/openbsd_hw.c b/crypto/evp/openbsd_hw.c
index 75d12e2330..07decf2674 100644
--- a/crypto/evp/openbsd_hw.c
+++ b/crypto/evp/openbsd_hw.c
@@ -133,6 +133,10 @@ static int dev_crypto_init_key(EVP_CIPHER_CTX *ctx, int cipher,
return 0;
CDATA(ctx)->key = OPENSSL_malloc(MAX_HW_KEY);
+ if (CDATA(ctx)->key == NULL {
+ err("CDATA(ctx)->key memory allocation failed");
+ return 0;
+ }
assert(ctx->cipher->iv_len <= MAX_HW_IV);
@@ -186,6 +190,11 @@ static int dev_crypto_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
if (((unsigned long)in & 3) || cinl != inl) {
cin = OPENSSL_malloc(cinl);
+ if (cin == NULL) {
+ err("cin - memory allocation failed");
+ abort();
+ return 0;
+ }
memcpy(cin, in, inl);
cryp.src = cin;
}
@@ -334,6 +343,11 @@ static int do_digest(int ses, unsigned char *md, const void *data, int len)
char *dcopy;
dcopy = OPENSSL_malloc(len);
+ if (dcopy == NULL) {
+ err("dcopy - memory allocation failed");
+ abort();
+ return 0;
+ }
memcpy(dcopy, data, len);
cryp.src = dcopy;
cryp.dst = cryp.src; // FIXME!!!
@@ -364,6 +378,10 @@ static int dev_crypto_md5_update(EVP_MD_CTX *ctx, const void *data,
return do_digest(md_data->sess.ses, md_data->md, data, len);
md_data->data = OPENSSL_realloc(md_data->data, md_data->len + len);
+ if (md_data->data == NULL) {
+ err("DEV_CRYPTO_MD5_UPDATE: unable to allocate memory");
+ abort();
+ }
memcpy(md_data->data + md_data->len, data, len);
md_data->len += len;
@@ -397,6 +415,10 @@ static int dev_crypto_md5_copy(EVP_MD_CTX *to, const EVP_MD_CTX *from)
assert(from->digest->flags & EVP_MD_FLAG_ONESHOT);
to_md->data = OPENSSL_malloc(from_md->len);
+ if (to_md->data == NULL) {
+ err("DEV_CRYPTO_MD5_COPY: unable to allocate memory");
+ abort();
+ }
memcpy(to_md->data, from_md->data, from_md->len);
return 1;