diff --git a/crypto/bio/buffer.c b/crypto/bio/buffer.c index 5fbce7ed..3fc0685b 100644 --- a/crypto/bio/buffer.c +++ b/crypto/bio/buffer.c @@ -122,17 +122,13 @@ err1: static int buffer_free(BIO *bio) { BIO_F_BUFFER_CTX *ctx; - if (bio == NULL) { + if (bio == NULL || bio->ptr == NULL) { return 0; } ctx = (BIO_F_BUFFER_CTX *)bio->ptr; - if (ctx->ibuf != NULL) { - OPENSSL_free(ctx->ibuf); - } - if (ctx->obuf != NULL) { - OPENSSL_free(ctx->obuf); - } + OPENSSL_free(ctx->ibuf); + OPENSSL_free(ctx->obuf); OPENSSL_free(bio->ptr); bio->ptr = NULL; diff --git a/crypto/bio/connect.c b/crypto/bio/connect.c index 1ef08ed0..32361bfe 100644 --- a/crypto/bio/connect.c +++ b/crypto/bio/connect.c @@ -161,9 +161,7 @@ static int conn_state(BIO *bio, BIO_CONNECT *c) { break; } } - if (c->param_port != NULL) { - OPENSSL_free(c->param_port); - } + OPENSSL_free(c->param_port); c->param_port = BUF_strdup(p); } } @@ -286,12 +284,8 @@ static void BIO_CONNECT_free(BIO_CONNECT *c) { return; } - if (c->param_hostname != NULL) { - OPENSSL_free(c->param_hostname); - } - if (c->param_port != NULL) { - OPENSSL_free(c->param_port); - } + OPENSSL_free(c->param_hostname); + OPENSSL_free(c->param_port); OPENSSL_free(c); } @@ -426,17 +420,13 @@ static long conn_ctrl(BIO *bio, int cmd, long num, void *ptr) { if (ptr != NULL) { bio->init = 1; if (num == 0) { - if (data->param_hostname != NULL) { - OPENSSL_free(data->param_hostname); - } + OPENSSL_free(data->param_hostname); data->param_hostname = BUF_strdup(ptr); if (data->param_hostname == NULL) { ret = 0; } } else if (num == 1) { - if (data->param_port != NULL) { - OPENSSL_free(data->param_port); - } + OPENSSL_free(data->param_port); data->param_port = BUF_strdup(ptr); if (data->param_port == NULL) { ret = 0; diff --git a/crypto/bio/pair.c b/crypto/bio/pair.c index de2b4cbc..cc559506 100644 --- a/crypto/bio/pair.c +++ b/crypto/bio/pair.c @@ -145,7 +145,7 @@ static int bio_free(BIO *bio) { bio_destroy_pair(bio); } - if (b->buf != NULL && !b->buf_externally_allocated) { + if (!b->buf_externally_allocated) { OPENSSL_free(b->buf); } @@ -793,14 +793,10 @@ int BIO_new_bio_pair_external_buf(BIO** bio1_p, size_t writebuf1_len, err: if (ret == 0) { - if (bio1) { - BIO_free(bio1); - bio1 = NULL; - } - if (bio2) { - BIO_free(bio2); - bio2 = NULL; - } + BIO_free(bio1); + bio1 = NULL; + BIO_free(bio2); + bio2 = NULL; } *bio1_p = bio1; diff --git a/crypto/bn/bn.c b/crypto/bn/bn.c index f89b6f1d..f32d6b07 100644 --- a/crypto/bn/bn.c +++ b/crypto/bn/bn.c @@ -88,7 +88,7 @@ void BN_free(BIGNUM *bn) { return; } - if (bn->d != NULL && (bn->flags & BN_FLG_STATIC_DATA) == 0) { + if ((bn->flags & BN_FLG_STATIC_DATA) == 0) { OPENSSL_free(bn->d); } @@ -304,9 +304,7 @@ BIGNUM *bn_wexpand(BIGNUM *bn, unsigned words) { memcpy(a, bn->d, sizeof(BN_ULONG) * bn->top); - if (bn->d) { - OPENSSL_free(bn->d); - } + OPENSSL_free(bn->d); bn->d = a; bn->dmax = words; diff --git a/crypto/bn/convert.c b/crypto/bn/convert.c index 9c7b9be4..531b6619 100644 --- a/crypto/bn/convert.c +++ b/crypto/bn/convert.c @@ -407,13 +407,9 @@ char *BN_bn2dec(const BIGNUM *a) { ok = 1; err: - if (bn_data != NULL) { - OPENSSL_free(bn_data); - } - if (t != NULL) { - BN_free(t); - } - if (!ok && buf) { + OPENSSL_free(bn_data); + BN_free(t); + if (!ok) { OPENSSL_free(buf); buf = NULL; } diff --git a/crypto/bn/ctx.c b/crypto/bn/ctx.c index e3a5c928..05783762 100644 --- a/crypto/bn/ctx.c +++ b/crypto/bn/ctx.c @@ -205,9 +205,7 @@ static void BN_STACK_init(BN_STACK *st) { } static void BN_STACK_finish(BN_STACK *st) { - if (st->size) { - OPENSSL_free(st->indexes); - } + OPENSSL_free(st->indexes); } static int BN_STACK_push(BN_STACK *st, unsigned int idx) { @@ -222,9 +220,7 @@ static int BN_STACK_push(BN_STACK *st, unsigned int idx) { if (st->depth) { memcpy(newitems, st->indexes, st->depth * sizeof(unsigned int)); } - if (st->size) { - OPENSSL_free(st->indexes); - } + OPENSSL_free(st->indexes); st->indexes = newitems; st->size = newsize; } diff --git a/crypto/bn/div.c b/crypto/bn/div.c index 8b0152e8..3588ea11 100644 --- a/crypto/bn/div.c +++ b/crypto/bn/div.c @@ -492,9 +492,7 @@ int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, ret = BN_mod_lshift_quick(r, r, n, (abs_m ? abs_m : m)); - if (abs_m) { - BN_free(abs_m); - } + BN_free(abs_m); return ret; } diff --git a/crypto/bn/exponentiation.c b/crypto/bn/exponentiation.c index 57f319ae..d3063c9f 100644 --- a/crypto/bn/exponentiation.c +++ b/crypto/bn/exponentiation.c @@ -763,7 +763,7 @@ int BN_mod_exp_mont(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, ret = 1; err: - if (in_mont == NULL && mont != NULL) { + if (in_mont == NULL) { BN_MONT_CTX_free(mont); } BN_CTX_end(ctx); @@ -878,8 +878,7 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, BN_CTX_start(ctx); /* Allocate a montgomery context if it was not supplied by the caller. - * If this is not done, things will break in the montgomery part. - */ + * If this is not done, things will break in the montgomery part. */ if (in_mont != NULL) { mont = in_mont; } else { @@ -1191,14 +1190,12 @@ int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, } ret = 1; err: - if ((in_mont == NULL) && (mont != NULL)) { + if (in_mont == NULL) { BN_MONT_CTX_free(mont); } if (powerbuf != NULL) { OPENSSL_cleanse(powerbuf, powerbufLen); - if (powerbufFree) { - OPENSSL_free(powerbufFree); - } + OPENSSL_free(powerbufFree); } BN_CTX_end(ctx); return (ret); @@ -1353,7 +1350,7 @@ int BN_mod_exp_mont_word(BIGNUM *rr, BN_ULONG a, const BIGNUM *p, ret = 1; err: - if (in_mont == NULL && mont != NULL) { + if (in_mont == NULL) { BN_MONT_CTX_free(mont); } BN_CTX_end(ctx); @@ -1557,7 +1554,7 @@ int BN_mod_exp2_mont(BIGNUM *rr, const BIGNUM *a1, const BIGNUM *p1, ret = 1; err: - if (in_mont == NULL && mont != NULL) { + if (in_mont == NULL) { BN_MONT_CTX_free(mont); } BN_CTX_end(ctx); diff --git a/crypto/bn/random.c b/crypto/bn/random.c index 285bf26c..3be7510c 100644 --- a/crypto/bn/random.c +++ b/crypto/bn/random.c @@ -321,8 +321,6 @@ int BN_generate_dsa_nonce(BIGNUM *out, const BIGNUM *range, const BIGNUM *priv, ret = 1; err: - if (k_bytes) { - OPENSSL_free(k_bytes); - } + OPENSSL_free(k_bytes); return ret; } diff --git a/crypto/bn/sqrt.c b/crypto/bn/sqrt.c index 07041f9c..e71a8181 100644 --- a/crypto/bn/sqrt.c +++ b/crypto/bn/sqrt.c @@ -420,7 +420,7 @@ vrfy: end: if (err) { - if (ret != NULL && ret != in) { + if (ret != in) { BN_clear_free(ret); } ret = NULL; diff --git a/crypto/bytestring/cbb.c b/crypto/bytestring/cbb.c index e146727b..f1e09a2a 100644 --- a/crypto/bytestring/cbb.c +++ b/crypto/bytestring/cbb.c @@ -66,7 +66,7 @@ int CBB_init_fixed(CBB *cbb, uint8_t *buf, size_t len) { void CBB_cleanup(CBB *cbb) { if (cbb->base) { - if (cbb->base->buf && cbb->base->can_resize) { + if (cbb->base->can_resize) { OPENSSL_free(cbb->base->buf); } OPENSSL_free(cbb->base); diff --git a/crypto/bytestring/cbs.c b/crypto/bytestring/cbs.c index bd94ccec..10f1a99b 100644 --- a/crypto/bytestring/cbs.c +++ b/crypto/bytestring/cbs.c @@ -52,10 +52,8 @@ size_t CBS_len(const CBS *cbs) { } int CBS_stow(const CBS *cbs, uint8_t **out_ptr, size_t *out_len) { - if (*out_ptr != NULL) { - OPENSSL_free(*out_ptr); - *out_ptr = NULL; - } + OPENSSL_free(*out_ptr); + *out_ptr = NULL; *out_len = 0; if (cbs->len == 0) { diff --git a/crypto/dh/dh.c b/crypto/dh/dh.c index 77ebb1d1..ab7ed8b7 100644 --- a/crypto/dh/dh.c +++ b/crypto/dh/dh.c @@ -179,9 +179,7 @@ static int int_dh_bn_cpy(BIGNUM **dst, const BIGNUM *src) { } } - if (*dst) { - BN_free(*dst); - } + BN_free(*dst); *dst = a; return 1; } @@ -204,11 +202,10 @@ static int int_dh_param_copy(DH *to, const DH *from, int is_x942) { return 0; } - if (to->seed) { - OPENSSL_free(to->seed); - to->seed = NULL; - to->seedlen = 0; - } + OPENSSL_free(to->seed); + to->seed = NULL; + to->seedlen = 0; + if (from->seed) { to->seed = BUF_memdup(from->seed, from->seedlen); if (!to->seed) { diff --git a/crypto/dh/dh_impl.c b/crypto/dh/dh_impl.c index 81d777d0..f2694126 100644 --- a/crypto/dh/dh_impl.c +++ b/crypto/dh/dh_impl.c @@ -245,10 +245,10 @@ err: OPENSSL_PUT_ERROR(DH, generate_key, ERR_R_BN_LIB); } - if (pub_key != NULL && dh->pub_key == NULL) { + if (dh->pub_key == NULL) { BN_free(pub_key); } - if (priv_key != NULL && dh->priv_key == NULL) { + if (dh->priv_key == NULL) { BN_free(priv_key); } BN_CTX_free(ctx); diff --git a/crypto/dh/dh_test.c b/crypto/dh/dh_test.c index 836b3b22..a1fc83fd 100644 --- a/crypto/dh/dh_test.c +++ b/crypto/dh/dh_test.c @@ -189,18 +189,10 @@ int main(int argc, char *argv[]) { err: ERR_print_errors_fp(stderr); - if (abuf != NULL) { - OPENSSL_free(abuf); - } - if (bbuf != NULL) { - OPENSSL_free(bbuf); - } - if (b != NULL) { - DH_free(b); - } - if (a != NULL) { - DH_free(a); - } + OPENSSL_free(abuf); + OPENSSL_free(bbuf); + DH_free(b); + DH_free(a); return ret; } @@ -493,18 +485,10 @@ bad_err: ERR_print_errors_fp(stderr); err: - if (Z1 != NULL) { - OPENSSL_free(Z1); - } - if (Z2 != NULL) { - OPENSSL_free(Z2); - } - if (dhA != NULL) { - DH_free(dhA); - } - if (dhB != NULL) { - DH_free(dhB); - } + OPENSSL_free(Z1); + OPENSSL_free(Z2); + DH_free(dhA); + DH_free(dhB); fprintf(stderr, "Test failed RFC5114 set %d\n", i + 1); return 0; diff --git a/crypto/dsa/dsa.c b/crypto/dsa/dsa.c index 78e41549..e8e3d732 100644 --- a/crypto/dsa/dsa.c +++ b/crypto/dsa/dsa.c @@ -134,27 +134,13 @@ void DSA_free(DSA *dsa) { CRYPTO_free_ex_data(&g_ex_data_class, dsa, &dsa->ex_data); - if (dsa->p != NULL) { - BN_clear_free(dsa->p); - } - if (dsa->q != NULL) { - BN_clear_free(dsa->q); - } - if (dsa->g != NULL) { - BN_clear_free(dsa->g); - } - if (dsa->pub_key != NULL) { - BN_clear_free(dsa->pub_key); - } - if (dsa->priv_key != NULL) { - BN_clear_free(dsa->priv_key); - } - if (dsa->kinv != NULL) { - BN_clear_free(dsa->kinv); - } - if (dsa->r != NULL) { - BN_clear_free(dsa->r); - } + BN_clear_free(dsa->p); + BN_clear_free(dsa->q); + BN_clear_free(dsa->g); + BN_clear_free(dsa->pub_key); + BN_clear_free(dsa->priv_key); + BN_clear_free(dsa->kinv); + BN_clear_free(dsa->r); CRYPTO_MUTEX_cleanup(&dsa->method_mont_p_lock); OPENSSL_free(dsa); } @@ -198,12 +184,8 @@ void DSA_SIG_free(DSA_SIG *sig) { return; } - if (sig->r) { - BN_free(sig->r); - } - if (sig->s) { - BN_free(sig->s); - } + BN_free(sig->r); + BN_free(sig->s); OPENSSL_free(sig); } @@ -282,12 +264,8 @@ int DSA_check_signature(int *out_valid, const uint8_t *digest, ret = DSA_do_check_signature(out_valid, digest, digest_len, s, dsa); err: - if (der != NULL) { - OPENSSL_free(der); - } - if (s) { - DSA_SIG_free(s); - } + OPENSSL_free(der); + DSA_SIG_free(s); return ret; } @@ -365,8 +343,6 @@ DH *DSA_dup_DH(const DSA *r) { return ret; err: - if (ret != NULL) { - DH_free(ret); - } + DH_free(ret); return NULL; } diff --git a/crypto/dsa/dsa_impl.c b/crypto/dsa/dsa_impl.c index c4df80bd..b7e1fd82 100644 --- a/crypto/dsa/dsa_impl.c +++ b/crypto/dsa/dsa_impl.c @@ -162,14 +162,10 @@ static int sign_setup(const DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, goto err; } - if (*kinvp != NULL) { - BN_clear_free(*kinvp); - } + BN_clear_free(*kinvp); *kinvp = kinv; kinv = NULL; - if (*rp != NULL) { - BN_clear_free(*rp); - } + BN_clear_free(*rp); *rp = r; ret = 1; @@ -277,15 +273,10 @@ err: BN_free(r); BN_free(s); } - if (ctx != NULL) { - BN_CTX_free(ctx); - } + BN_CTX_free(ctx); BN_clear_free(&m); BN_clear_free(&xr); - if (kinv != NULL) { - /* dsa->kinv is NULL now if we used it */ - BN_clear_free(kinv); - } + BN_clear_free(kinv); return ret; } @@ -392,9 +383,7 @@ err: if (ret != 1) { OPENSSL_PUT_ERROR(DSA, verify, ERR_R_BN_LIB); } - if (ctx != NULL) { - BN_CTX_free(ctx); - } + BN_CTX_free(ctx); BN_free(&u1); BN_free(&u2); BN_free(&t1); @@ -447,15 +436,13 @@ static int keygen(DSA *dsa) { ok = 1; err: - if (pub_key != NULL && dsa->pub_key == NULL) { + if (dsa->pub_key == NULL) { BN_free(pub_key); } - if (priv_key != NULL && dsa->priv_key == NULL) { + if (dsa->priv_key == NULL) { BN_free(priv_key); } - if (ctx != NULL) { - BN_CTX_free(ctx); - } + BN_CTX_free(ctx); return ok; } @@ -706,15 +693,9 @@ end: err: if (ok) { - if (ret->p) { - BN_free(ret->p); - } - if (ret->q) { - BN_free(ret->q); - } - if (ret->g) { - BN_free(ret->g); - } + BN_free(ret->p); + BN_free(ret->q); + BN_free(ret->g); ret->p = BN_dup(p); ret->q = BN_dup(q); ret->g = BN_dup(g); @@ -735,9 +716,7 @@ err: BN_CTX_free(ctx); } - if (mont != NULL) { - BN_MONT_CTX_free(mont); - } + BN_MONT_CTX_free(mont); return ok; } diff --git a/crypto/dsa/dsa_test.c b/crypto/dsa/dsa_test.c index 83ecf25d..9b70dbee 100644 --- a/crypto/dsa/dsa_test.c +++ b/crypto/dsa/dsa_test.c @@ -247,9 +247,7 @@ static int test_generate(FILE *out) { } end: - if (dsa != NULL) { - DSA_free(dsa); - } + DSA_free(dsa); return ok; } @@ -271,9 +269,7 @@ static int test_verify(const uint8_t *sig, size_t sig_len, int expect) { ERR_clear_error(); end: - if (dsa != NULL) { - DSA_free(dsa); - } + DSA_free(dsa); return ok; }