From f59f23c38331e3adf58c0317caf319a7bfd82dd1 Mon Sep 17 00:00:00 2001 From: FdaSilvaYY Date: Sun, 6 Mar 2016 21:40:58 +0100 Subject: [PATCH] Add more zalloc Reviewed-by: Richard Levitte Reviewed-by: Matt Caswell Reviewed-by: Rich Salz (Merged from https://github.com/openssl/openssl/pull/997) --- crypto/asn1/a_strnid.c | 4 +--- crypto/asn1/bio_asn1.c | 11 +---------- crypto/asn1/bio_ndef.c | 9 ++++----- crypto/asn1/tasn_scn.c | 10 +--------- crypto/bio/bss_bio.c | 9 +-------- 5 files changed, 8 insertions(+), 35 deletions(-) diff --git a/crypto/asn1/a_strnid.c b/crypto/asn1/a_strnid.c index 188fa9ea26..53832c8a2c 100644 --- a/crypto/asn1/a_strnid.c +++ b/crypto/asn1/a_strnid.c @@ -199,7 +199,7 @@ static ASN1_STRING_TABLE *stable_get(int nid) tmp = ASN1_STRING_TABLE_get(nid); if (tmp && tmp->flags & STABLE_FLAGS_MALLOC) return tmp; - rv = OPENSSL_malloc(sizeof(*rv)); + rv = OPENSSL_zalloc(sizeof(*rv)); if (rv == NULL) return NULL; if (!sk_ASN1_STRING_TABLE_push(stable, rv)) { @@ -213,10 +213,8 @@ static ASN1_STRING_TABLE *stable_get(int nid) rv->mask = tmp->mask; rv->flags = tmp->flags | STABLE_FLAGS_MALLOC; } else { - rv->nid = NID_undef; rv->minsize = -1; rv->maxsize = -1; - rv->mask = 0; rv->flags = STABLE_FLAGS_MALLOC; } return rv; diff --git a/crypto/asn1/bio_asn1.c b/crypto/asn1/bio_asn1.c index f3d4776d72..400effa12c 100644 --- a/crypto/asn1/bio_asn1.c +++ b/crypto/asn1/bio_asn1.c @@ -95,9 +95,8 @@ const BIO_METHOD *BIO_f_asn1(void) static int asn1_bio_new(BIO *b) { - BIO_ASN1_BUF_CTX *ctx; + BIO_ASN1_BUF_CTX *ctx = OPENSSL_zalloc(sizeof(*ctx)); - ctx = OPENSSL_malloc(sizeof(*ctx)); if (ctx == NULL) return 0; if (!asn1_bio_init(ctx, DEFAULT_ASN1_BUF_SIZE)) { @@ -116,17 +115,9 @@ static int asn1_bio_init(BIO_ASN1_BUF_CTX *ctx, int size) if (ctx->buf == NULL) return 0; ctx->bufsize = size; - ctx->bufpos = 0; - ctx->buflen = 0; - ctx->copylen = 0; ctx->asn1_class = V_ASN1_UNIVERSAL; ctx->asn1_tag = V_ASN1_OCTET_STRING; - ctx->ex_buf = NULL; - ctx->ex_len = 0; - ctx->ex_pos = 0; ctx->state = ASN1_STATE_START; - ctx->prefix = ctx->prefix_free = ctx->suffix = ctx->suffix_free = NULL; - ctx->ex_arg = NULL; return 1; } diff --git a/crypto/asn1/bio_ndef.c b/crypto/asn1/bio_ndef.c index c43d2da4a4..0f206b2497 100644 --- a/crypto/asn1/bio_ndef.c +++ b/crypto/asn1/bio_ndef.c @@ -60,14 +60,14 @@ BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it) ASN1err(ASN1_F_BIO_NEW_NDEF, ASN1_R_STREAMING_NOT_SUPPORTED); return NULL; } - ndef_aux = OPENSSL_malloc(sizeof(*ndef_aux)); + ndef_aux = OPENSSL_zalloc(sizeof(*ndef_aux)); asn_bio = BIO_new(BIO_f_asn1()); + if (ndef_aux == NULL || asn_bio == NULL) + goto err; /* ASN1 bio needs to be next to output BIO */ - out = BIO_push(asn_bio, out); - - if (ndef_aux == NULL || asn_bio == NULL || !out) + if (out == NULL) goto err; BIO_asn1_set_prefix(asn_bio, ndef_prefix, ndef_prefix_free); @@ -90,7 +90,6 @@ BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it) ndef_aux->ndef_bio = sarg.ndef_bio; ndef_aux->boundary = sarg.boundary; ndef_aux->out = out; - ndef_aux->derbuf = NULL; BIO_ctrl(asn_bio, BIO_C_SET_EX_ARG, 0, ndef_aux); diff --git a/crypto/asn1/tasn_scn.c b/crypto/asn1/tasn_scn.c index 7062e2355f..e1df2cfcae 100644 --- a/crypto/asn1/tasn_scn.c +++ b/crypto/asn1/tasn_scn.c @@ -24,21 +24,13 @@ ASN1_SCTX *ASN1_SCTX_new(int (*scan_cb) (ASN1_SCTX *ctx)) { - ASN1_SCTX *ret; + ASN1_SCTX *ret = OPENSSL_zalloc(sizeof(*ret)); - ret = OPENSSL_malloc(sizeof(*ret)); if (ret == NULL) { ASN1err(ASN1_F_ASN1_SCTX_NEW, ERR_R_MALLOC_FAILURE); return NULL; } - ret->it = ret->tt = NULL; - ret->flags = 0; - ret->skidx = ret->depth = 0; - ret->sname = ret->fname = NULL; - ret->prim_type = 0; - ret->field = NULL; ret->scan_cb = scan_cb; - ret->app_data = NULL; return ret; } diff --git a/crypto/bio/bss_bio.c b/crypto/bio/bss_bio.c index 9f1300e0b9..de34f6bf37 100644 --- a/crypto/bio/bss_bio.c +++ b/crypto/bio/bss_bio.c @@ -74,20 +74,13 @@ struct bio_bio_st { static int bio_new(BIO *bio) { - struct bio_bio_st *b; + struct bio_bio_st *b = OPENSSL_zalloc(sizeof(*b)); - b = OPENSSL_malloc(sizeof(*b)); if (b == NULL) return 0; - b->peer = NULL; - b->closed = 0; - b->len = 0; - b->offset = 0; /* enough for one TLS record (just a default) */ b->size = 17 * 1024; - b->buf = NULL; - b->request = 0; bio->ptr = b; return 1; -- 2.25.1