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..ed9e79b 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;