Remove some unnecessary NULL checks. Our free functions all tolerate NULL. Change-Id: Ifcb3185c8d2f34afb83f7286c3463136edc926fa Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/53125 Reviewed-by: Bob Beck <bbe@google.com> Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/crypto/asn1/a_object.c b/crypto/asn1/a_object.c index 17783ba..c854fb8 100644 --- a/crypto/asn1/a_object.c +++ b/crypto/asn1/a_object.c
@@ -204,9 +204,7 @@ // once detached we can change it if ((data == NULL) || (ret->length < length)) { ret->length = 0; - if (data != NULL) { - OPENSSL_free(data); - } + OPENSSL_free(data); data = (unsigned char *)OPENSSL_malloc(length); if (data == NULL) { i = ERR_R_MALLOC_FAILURE;
diff --git a/crypto/asn1/a_utctm.c b/crypto/asn1/a_utctm.c index 159a0ea..ac548dd 100644 --- a/crypto/asn1/a_utctm.c +++ b/crypto/asn1/a_utctm.c
@@ -154,7 +154,7 @@ s->type = V_ASN1_UTCTIME; return s; err: - if (free_s && s) { + if (free_s) { ASN1_UTCTIME_free(s); } return NULL;
diff --git a/crypto/asn1/tasn_utl.c b/crypto/asn1/tasn_utl.c index a476874..4a97574 100644 --- a/crypto/asn1/tasn_utl.c +++ b/crypto/asn1/tasn_utl.c
@@ -146,7 +146,7 @@ ASN1_ENCODING *enc; enc = asn1_get_enc_ptr(pval, it); if (enc) { - if (enc->enc && !enc->alias_only) { + if (!enc->alias_only) { OPENSSL_free(enc->enc); } enc->enc = NULL;
diff --git a/crypto/x509/a_sign.c b/crypto/x509/a_sign.c index 010f660..ed9e79bb 100644 --- a/crypto/x509/a_sign.c +++ b/crypto/x509/a_sign.c
@@ -107,14 +107,8 @@ OPENSSL_PUT_ERROR(X509, ERR_R_EVP_LIB); goto err; } - if (signature->data != NULL) { - OPENSSL_free(signature->data); - } - signature->data = buf_out; + ASN1_STRING_set0(signature, buf_out, outl); buf_out = NULL; - signature->length = outl; - // In the interests of compatibility, I'll make sure that the bit string - // has a 'not-used bits' value of 0 signature->flags &= ~(ASN1_STRING_FLAG_BITS_LEFT | 0x07); signature->flags |= ASN1_STRING_FLAG_BITS_LEFT; err:
diff --git a/crypto/x509/asn1_gen.c b/crypto/x509/asn1_gen.c index 3890c46..eb31970 100644 --- a/crypto/x509/asn1_gen.c +++ b/crypto/x509/asn1_gen.c
@@ -273,13 +273,8 @@ ret = d2i_ASN1_TYPE(NULL, &cp, len); err: - if (orig_der) { - OPENSSL_free(orig_der); - } - if (new_der) { - OPENSSL_free(new_der); - } - + OPENSSL_free(orig_der); + OPENSSL_free(new_der); return ret; } @@ -513,18 +508,9 @@ der = NULL; bad: - - if (der) { - OPENSSL_free(der); - } - - if (sk) { - sk_ASN1_TYPE_pop_free(sk, ASN1_TYPE_free); - } - if (sect) { - X509V3_section_free(cnf, sect); - } - + OPENSSL_free(der); + sk_ASN1_TYPE_pop_free(sk, ASN1_TYPE_free); + X509V3_section_free(cnf, sect); return ret; }
diff --git a/crypto/x509/by_dir.c b/crypto/x509/by_dir.c index 395e82d..9e3290d 100644 --- a/crypto/x509/by_dir.c +++ b/crypto/x509/by_dir.c
@@ -114,10 +114,9 @@ static int dir_ctrl(X509_LOOKUP *ctx, int cmd, const char *argp, long argl, char **retp) { int ret = 0; - BY_DIR *ld; char *dir = NULL; - ld = (BY_DIR *)ctx->method_data; + BY_DIR *ld = ctx->method_data; switch (cmd) { case X509_L_ADD_DIR: @@ -151,7 +150,7 @@ return 0; } a->dirs = NULL; - lu->method_data = (char *)a; + lu->method_data = a; return 1; } @@ -168,26 +167,20 @@ } static void by_dir_entry_free(BY_DIR_ENTRY *ent) { - if (ent->dir) { + if (ent != NULL) { OPENSSL_free(ent->dir); - } - if (ent->hashes) { sk_BY_DIR_HASH_pop_free(ent->hashes, by_dir_hash_free); + OPENSSL_free(ent); } - OPENSSL_free(ent); } static void free_dir(X509_LOOKUP *lu) { - BY_DIR *a; - - a = (BY_DIR *)lu->method_data; - if (a->dirs != NULL) { + BY_DIR *a = lu->method_data; + if (a != NULL) { sk_BY_DIR_ENTRY_pop_free(a->dirs, by_dir_entry_free); - } - if (a->buffer != NULL) { BUF_MEM_free(a->buffer); + OPENSSL_free(a); } - OPENSSL_free(a); } static int add_cert_dir(BY_DIR *ctx, const char *dir, int type) { @@ -253,7 +246,6 @@ static int get_cert_by_subject(X509_LOOKUP *xl, int type, X509_NAME *name, X509_OBJECT *ret) { - BY_DIR *ctx; union { struct { X509 st_x509; @@ -299,7 +291,7 @@ goto finish; } - ctx = (BY_DIR *)xl->method_data; + BY_DIR *ctx = xl->method_data; hash_array[0] = X509_NAME_hash(name); hash_array[1] = X509_NAME_hash_old(name); @@ -440,9 +432,7 @@ } } finish: - if (b != NULL) { - BUF_MEM_free(b); - } + BUF_MEM_free(b); return ok; }
diff --git a/crypto/x509/by_file.c b/crypto/x509/by_file.c index 65c2b8b..3435fc2 100644 --- a/crypto/x509/by_file.c +++ b/crypto/x509/by_file.c
@@ -171,12 +171,8 @@ } err: - if (x != NULL) { - X509_free(x); - } - if (in != NULL) { - BIO_free(in); - } + X509_free(x); + BIO_free(in); return ret; } @@ -236,12 +232,8 @@ } err: - if (x != NULL) { - X509_CRL_free(x); - } - if (in != NULL) { - BIO_free(in); - } + X509_CRL_free(x); + BIO_free(in); return ret; }
diff --git a/crypto/x509/internal.h b/crypto/x509/internal.h index 6ac8a3f..8785949 100644 --- a/crypto/x509/internal.h +++ b/crypto/x509/internal.h
@@ -310,7 +310,7 @@ int init; // have we been started int skip; // don't use us. X509_LOOKUP_METHOD *method; // the functions - char *method_data; // method data + void *method_data; // method data X509_STORE *store_ctx; // who owns us } /* X509_LOOKUP */;
diff --git a/crypto/x509v3/pcy_tree.c b/crypto/x509v3/pcy_tree.c index 10dad05..673c615 100644 --- a/crypto/x509v3/pcy_tree.c +++ b/crypto/x509v3/pcy_tree.c
@@ -688,9 +688,6 @@ } void X509_policy_tree_free(X509_POLICY_TREE *tree) { - X509_POLICY_LEVEL *curr; - int i; - if (!tree) { return; } @@ -698,22 +695,14 @@ sk_X509_POLICY_NODE_free(tree->auth_policies); sk_X509_POLICY_NODE_pop_free(tree->user_policies, exnode_free); - for (i = 0, curr = tree->levels; i < tree->nlevel; i++, curr++) { - if (curr->cert) { - X509_free(curr->cert); - } - if (curr->nodes) { - sk_X509_POLICY_NODE_pop_free(curr->nodes, policy_node_free); - } - if (curr->anyPolicy) { - policy_node_free(curr->anyPolicy); - } + for (int i = 0; i < tree->nlevel; i++) { + X509_POLICY_LEVEL *curr = &tree->levels[i]; + X509_free(curr->cert); + sk_X509_POLICY_NODE_pop_free(curr->nodes, policy_node_free); + policy_node_free(curr->anyPolicy); } - if (tree->extra_data) { - sk_X509_POLICY_DATA_pop_free(tree->extra_data, policy_data_free); - } - + sk_X509_POLICY_DATA_pop_free(tree->extra_data, policy_data_free); OPENSSL_free(tree->levels); OPENSSL_free(tree); }
diff --git a/crypto/x509v3/v3_conf.c b/crypto/x509v3/v3_conf.c index 7140edd..64bed7a 100644 --- a/crypto/x509v3/v3_conf.c +++ b/crypto/x509v3/v3_conf.c
@@ -310,9 +310,7 @@ err: ASN1_OBJECT_free(obj); ASN1_OCTET_STRING_free(oct); - if (ext_der) { - OPENSSL_free(ext_der); - } + OPENSSL_free(ext_der); return extension; }
diff --git a/crypto/x509v3/v3_crld.c b/crypto/x509v3/v3_crld.c index f1cab70..68ab343 100644 --- a/crypto/x509v3/v3_crld.c +++ b/crypto/x509v3/v3_crld.c
@@ -190,12 +190,8 @@ return 1; err: - if (fnm) { - sk_GENERAL_NAME_pop_free(fnm, GENERAL_NAME_free); - } - if (rnm) { - sk_X509_NAME_ENTRY_pop_free(rnm, X509_NAME_ENTRY_free); - } + sk_GENERAL_NAME_pop_free(fnm, GENERAL_NAME_free); + sk_X509_NAME_ENTRY_pop_free(rnm, X509_NAME_ENTRY_free); return -1; } @@ -308,9 +304,7 @@ return point; err: - if (point) { - DIST_POINT_free(point); - } + DIST_POINT_free(point); return NULL; } @@ -389,9 +383,7 @@ break; case ASN1_OP_FREE_POST: - if (dpn->dpname) { - X509_NAME_free(dpn->dpname); - } + X509_NAME_free(dpn->dpname); break; } return 1;
diff --git a/crypto/x509v3/v3_ncons.c b/crypto/x509v3/v3_ncons.c index 55f4eed..967423a 100644 --- a/crypto/x509v3/v3_ncons.c +++ b/crypto/x509v3/v3_ncons.c
@@ -161,13 +161,8 @@ memerr: OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE); err: - if (ncons) { - NAME_CONSTRAINTS_free(ncons); - } - if (sub) { - GENERAL_SUBTREE_free(sub); - } - + NAME_CONSTRAINTS_free(ncons); + GENERAL_SUBTREE_free(sub); return NULL; }
diff --git a/crypto/x509v3/v3_utl.c b/crypto/x509v3/v3_utl.c index 16e0e07..3eccf06 100644 --- a/crypto/x509v3/v3_utl.c +++ b/crypto/x509v3/v3_utl.c
@@ -158,15 +158,9 @@ if (!conf) { return; } - if (conf->name) { - OPENSSL_free(conf->name); - } - if (conf->value) { - OPENSSL_free(conf->value); - } - if (conf->section) { - OPENSSL_free(conf->section); - } + OPENSSL_free(conf->name); + OPENSSL_free(conf->value); + OPENSSL_free(conf->section); OPENSSL_free(conf); } @@ -551,9 +545,7 @@ return hexbuf; err: - if (hexbuf) { - OPENSSL_free(hexbuf); - } + OPENSSL_free(hexbuf); OPENSSL_PUT_ERROR(X509V3, ERR_R_MALLOC_FAILURE); return NULL;