Remove unnecessary NULL checks, part 2.
Stuff in crypto/ec. Change-Id: I3bd238c365c4766ed8abc6f835a107478b43b159 Reviewed-on: https://boringssl-review.googlesource.com/4515 Reviewed-by: Adam Langley <agl@google.com>
This commit is contained in:
parent
22ccc2d8f1
commit
cfaf7ff9bf
@ -364,30 +364,14 @@ err:
|
||||
EC_GROUP_free(group);
|
||||
group = NULL;
|
||||
}
|
||||
if (P) {
|
||||
EC_POINT_free(P);
|
||||
}
|
||||
if (ctx) {
|
||||
BN_CTX_free(ctx);
|
||||
}
|
||||
if (p) {
|
||||
BN_free(p);
|
||||
}
|
||||
if (a) {
|
||||
BN_free(a);
|
||||
}
|
||||
if (b) {
|
||||
BN_free(b);
|
||||
}
|
||||
if (order) {
|
||||
BN_free(order);
|
||||
}
|
||||
if (x) {
|
||||
BN_free(x);
|
||||
}
|
||||
if (y) {
|
||||
BN_free(y);
|
||||
}
|
||||
EC_POINT_free(P);
|
||||
BN_CTX_free(ctx);
|
||||
BN_free(p);
|
||||
BN_free(a);
|
||||
BN_free(b);
|
||||
BN_free(order);
|
||||
BN_free(x);
|
||||
BN_free(y);
|
||||
return group;
|
||||
}
|
||||
|
||||
@ -424,9 +408,7 @@ void EC_GROUP_free(EC_GROUP *group) {
|
||||
|
||||
ec_pre_comp_free(group->pre_comp);
|
||||
|
||||
if (group->generator != NULL) {
|
||||
EC_POINT_free(group->generator);
|
||||
}
|
||||
EC_POINT_free(group->generator);
|
||||
BN_free(&group->order);
|
||||
BN_free(&group->cofactor);
|
||||
|
||||
@ -497,9 +479,7 @@ EC_GROUP *EC_GROUP_dup(const EC_GROUP *a) {
|
||||
|
||||
err:
|
||||
if (!ok) {
|
||||
if (t) {
|
||||
EC_GROUP_free(t);
|
||||
}
|
||||
EC_GROUP_free(t);
|
||||
return NULL;
|
||||
} else {
|
||||
return t;
|
||||
|
@ -172,9 +172,7 @@ ECPKPARAMETERS *ec_asn1_group2pkparameters(const EC_GROUP *group,
|
||||
return NULL;
|
||||
}
|
||||
} else {
|
||||
if (ret->value.named_curve) {
|
||||
ASN1_OBJECT_free(ret->value.named_curve);
|
||||
}
|
||||
ASN1_OBJECT_free(ret->value.named_curve);
|
||||
}
|
||||
|
||||
/* use the ASN.1 OID to describe the the elliptic curve parameters. */
|
||||
@ -257,10 +255,8 @@ static EC_GROUP *d2i_ECPKParameters(EC_GROUP **groupp, const uint8_t **inp,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (groupp && *groupp) {
|
||||
EC_GROUP_free(*groupp);
|
||||
}
|
||||
if (groupp) {
|
||||
EC_GROUP_free(*groupp);
|
||||
*groupp = group;
|
||||
}
|
||||
|
||||
@ -307,9 +303,7 @@ EC_KEY *d2i_ECPrivateKey(EC_KEY **a, const uint8_t **in, long len) {
|
||||
}
|
||||
|
||||
if (priv_key->parameters) {
|
||||
if (ret->group) {
|
||||
EC_GROUP_free(ret->group);
|
||||
}
|
||||
EC_GROUP_free(ret->group);
|
||||
ret->group = ec_asn1_pkparameters2group(priv_key->parameters);
|
||||
}
|
||||
|
||||
@ -333,9 +327,7 @@ EC_KEY *d2i_ECPrivateKey(EC_KEY **a, const uint8_t **in, long len) {
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (ret->pub_key) {
|
||||
EC_POINT_free(ret->pub_key);
|
||||
}
|
||||
EC_POINT_free(ret->pub_key);
|
||||
ret->pub_key = EC_POINT_new(ret->group);
|
||||
if (ret->pub_key == NULL) {
|
||||
OPENSSL_PUT_ERROR(EC, d2i_ECPrivateKey, ERR_R_EC_LIB);
|
||||
@ -377,15 +369,13 @@ EC_KEY *d2i_ECPrivateKey(EC_KEY **a, const uint8_t **in, long len) {
|
||||
|
||||
err:
|
||||
if (!ok) {
|
||||
if (ret && (a == NULL || *a != ret)) {
|
||||
if (a == NULL || *a != ret) {
|
||||
EC_KEY_free(ret);
|
||||
}
|
||||
ret = NULL;
|
||||
}
|
||||
|
||||
if (priv_key) {
|
||||
EC_PRIVATEKEY_free(priv_key);
|
||||
}
|
||||
EC_PRIVATEKEY_free(priv_key);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@ -478,12 +468,8 @@ int i2d_ECPrivateKey(const EC_KEY *key, uint8_t **outp) {
|
||||
ok = 1;
|
||||
|
||||
err:
|
||||
if (buffer) {
|
||||
OPENSSL_free(buffer);
|
||||
}
|
||||
if (priv_key) {
|
||||
EC_PRIVATEKEY_free(priv_key);
|
||||
}
|
||||
OPENSSL_free(buffer);
|
||||
EC_PRIVATEKEY_free(priv_key);
|
||||
return (ok ? ret : 0);
|
||||
}
|
||||
|
||||
|
@ -153,15 +153,9 @@ void EC_KEY_free(EC_KEY *r) {
|
||||
METHOD_unref(r->ecdsa_meth);
|
||||
}
|
||||
|
||||
if (r->group != NULL) {
|
||||
EC_GROUP_free(r->group);
|
||||
}
|
||||
if (r->pub_key != NULL) {
|
||||
EC_POINT_free(r->pub_key);
|
||||
}
|
||||
if (r->priv_key != NULL) {
|
||||
BN_clear_free(r->priv_key);
|
||||
}
|
||||
EC_GROUP_free(r->group);
|
||||
EC_POINT_free(r->pub_key);
|
||||
BN_clear_free(r->priv_key);
|
||||
|
||||
CRYPTO_free_ex_data(&g_ex_data_class, r, &r->ex_data);
|
||||
|
||||
@ -177,9 +171,7 @@ EC_KEY *EC_KEY_copy(EC_KEY *dest, const EC_KEY *src) {
|
||||
/* Copy the parameters. */
|
||||
if (src->group) {
|
||||
/* TODO(fork): duplicating the group seems wasteful. */
|
||||
if (dest->group) {
|
||||
EC_GROUP_free(dest->group);
|
||||
}
|
||||
EC_GROUP_free(dest->group);
|
||||
dest->group = EC_GROUP_dup(src->group);
|
||||
if (dest->group == NULL) {
|
||||
return NULL;
|
||||
@ -188,9 +180,7 @@ EC_KEY *EC_KEY_copy(EC_KEY *dest, const EC_KEY *src) {
|
||||
|
||||
/* Copy the public key. */
|
||||
if (src->pub_key && src->group) {
|
||||
if (dest->pub_key) {
|
||||
EC_POINT_free(dest->pub_key);
|
||||
}
|
||||
EC_POINT_free(dest->pub_key);
|
||||
dest->pub_key = EC_POINT_dup(src->pub_key, src->group);
|
||||
if (dest->pub_key == NULL) {
|
||||
return NULL;
|
||||
@ -248,9 +238,7 @@ int EC_KEY_is_opaque(const EC_KEY *key) {
|
||||
const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key) { return key->group; }
|
||||
|
||||
int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group) {
|
||||
if (key->group != NULL) {
|
||||
EC_GROUP_free(key->group);
|
||||
}
|
||||
EC_GROUP_free(key->group);
|
||||
/* TODO(fork): duplicating the group seems wasteful but see
|
||||
* |EC_KEY_set_conv_form|. */
|
||||
key->group = EC_GROUP_dup(group);
|
||||
@ -262,9 +250,7 @@ const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key) {
|
||||
}
|
||||
|
||||
int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *priv_key) {
|
||||
if (key->priv_key) {
|
||||
BN_clear_free(key->priv_key);
|
||||
}
|
||||
BN_clear_free(key->priv_key);
|
||||
key->priv_key = BN_dup(priv_key);
|
||||
return (key->priv_key == NULL) ? 0 : 1;
|
||||
}
|
||||
@ -274,9 +260,7 @@ const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key) {
|
||||
}
|
||||
|
||||
int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub_key) {
|
||||
if (key->pub_key != NULL) {
|
||||
EC_POINT_free(key->pub_key);
|
||||
}
|
||||
EC_POINT_free(key->pub_key);
|
||||
key->pub_key = EC_POINT_dup(pub_key, key->group);
|
||||
return (key->pub_key == NULL) ? 0 : 1;
|
||||
}
|
||||
@ -367,12 +351,8 @@ int EC_KEY_check_key(const EC_KEY *eckey) {
|
||||
ok = 1;
|
||||
|
||||
err:
|
||||
if (ctx != NULL) {
|
||||
BN_CTX_free(ctx);
|
||||
}
|
||||
if (point != NULL) {
|
||||
EC_POINT_free(point);
|
||||
}
|
||||
BN_CTX_free(ctx);
|
||||
EC_POINT_free(point);
|
||||
return ok;
|
||||
}
|
||||
|
||||
@ -423,12 +403,8 @@ int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x,
|
||||
ok = 1;
|
||||
|
||||
err:
|
||||
if (ctx) {
|
||||
BN_CTX_free(ctx);
|
||||
}
|
||||
if (point) {
|
||||
EC_POINT_free(point);
|
||||
}
|
||||
BN_CTX_free(ctx);
|
||||
EC_POINT_free(point);
|
||||
return ok;
|
||||
}
|
||||
|
||||
@ -489,18 +465,14 @@ int EC_KEY_generate_key(EC_KEY *eckey) {
|
||||
ok = 1;
|
||||
|
||||
err:
|
||||
if (order) {
|
||||
BN_free(order);
|
||||
}
|
||||
if (pub_key != NULL && eckey->pub_key == NULL) {
|
||||
BN_free(order);
|
||||
if (eckey->pub_key == NULL) {
|
||||
EC_POINT_free(pub_key);
|
||||
}
|
||||
if (priv_key != NULL && eckey->priv_key == NULL) {
|
||||
if (eckey->priv_key == NULL) {
|
||||
BN_free(priv_key);
|
||||
}
|
||||
if (ctx != NULL) {
|
||||
BN_CTX_free(ctx);
|
||||
}
|
||||
BN_CTX_free(ctx);
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
@ -127,38 +127,26 @@ int ec_GFp_mont_group_init(EC_GROUP *group) {
|
||||
}
|
||||
|
||||
void ec_GFp_mont_group_finish(EC_GROUP *group) {
|
||||
if (group->mont != NULL) {
|
||||
BN_MONT_CTX_free(group->mont);
|
||||
group->mont = NULL;
|
||||
}
|
||||
if (group->one != NULL) {
|
||||
BN_free(group->one);
|
||||
group->one = NULL;
|
||||
}
|
||||
BN_MONT_CTX_free(group->mont);
|
||||
group->mont = NULL;
|
||||
BN_free(group->one);
|
||||
group->one = NULL;
|
||||
ec_GFp_simple_group_finish(group);
|
||||
}
|
||||
|
||||
void ec_GFp_mont_group_clear_finish(EC_GROUP *group) {
|
||||
if (group->mont != NULL) {
|
||||
BN_MONT_CTX_free(group->mont);
|
||||
group->mont = NULL;
|
||||
}
|
||||
if (group->one != NULL) {
|
||||
BN_clear_free(group->one);
|
||||
group->one = NULL;
|
||||
}
|
||||
BN_MONT_CTX_free(group->mont);
|
||||
group->mont = NULL;
|
||||
BN_clear_free(group->one);
|
||||
group->one = NULL;
|
||||
ec_GFp_simple_group_clear_finish(group);
|
||||
}
|
||||
|
||||
int ec_GFp_mont_group_copy(EC_GROUP *dest, const EC_GROUP *src) {
|
||||
if (dest->mont != NULL) {
|
||||
BN_MONT_CTX_free(dest->mont);
|
||||
dest->mont = NULL;
|
||||
}
|
||||
if (dest->one != NULL) {
|
||||
BN_clear_free(dest->one);
|
||||
dest->one = NULL;
|
||||
}
|
||||
BN_MONT_CTX_free(dest->mont);
|
||||
dest->mont = NULL;
|
||||
BN_clear_free(dest->one);
|
||||
dest->one = NULL;
|
||||
|
||||
if (!ec_GFp_simple_group_copy(dest, src)) {
|
||||
return 0;
|
||||
@ -183,10 +171,8 @@ int ec_GFp_mont_group_copy(EC_GROUP *dest, const EC_GROUP *src) {
|
||||
return 1;
|
||||
|
||||
err:
|
||||
if (dest->mont != NULL) {
|
||||
BN_MONT_CTX_free(dest->mont);
|
||||
dest->mont = NULL;
|
||||
}
|
||||
BN_MONT_CTX_free(dest->mont);
|
||||
dest->mont = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -197,14 +183,10 @@ int ec_GFp_mont_group_set_curve(EC_GROUP *group, const BIGNUM *p,
|
||||
BIGNUM *one = NULL;
|
||||
int ret = 0;
|
||||
|
||||
if (group->mont != NULL) {
|
||||
BN_MONT_CTX_free(group->mont);
|
||||
group->mont = NULL;
|
||||
}
|
||||
if (group->one != NULL) {
|
||||
BN_free(group->one);
|
||||
group->one = NULL;
|
||||
}
|
||||
BN_MONT_CTX_free(group->mont);
|
||||
group->mont = NULL;
|
||||
BN_free(group->one);
|
||||
group->one = NULL;
|
||||
|
||||
if (ctx == NULL) {
|
||||
ctx = new_ctx = BN_CTX_new();
|
||||
@ -241,15 +223,9 @@ int ec_GFp_mont_group_set_curve(EC_GROUP *group, const BIGNUM *p,
|
||||
}
|
||||
|
||||
err:
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
if (mont != NULL) {
|
||||
BN_MONT_CTX_free(mont);
|
||||
}
|
||||
if (one != NULL) {
|
||||
BN_free(one);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
BN_MONT_CTX_free(mont);
|
||||
BN_free(one);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -164,18 +164,14 @@ static size_t ec_GFp_simple_point2oct(const EC_GROUP *group,
|
||||
if (used_ctx) {
|
||||
BN_CTX_end(ctx);
|
||||
}
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
return ret;
|
||||
|
||||
err:
|
||||
if (used_ctx) {
|
||||
BN_CTX_end(ctx);
|
||||
}
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -275,9 +271,7 @@ static int ec_GFp_simple_oct2point(const EC_GROUP *group, EC_POINT *point,
|
||||
|
||||
err:
|
||||
BN_CTX_end(ctx);
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -456,9 +450,7 @@ int ec_GFp_simple_set_compressed_coordinates(const EC_GROUP *group,
|
||||
|
||||
err:
|
||||
BN_CTX_end(ctx);
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -1647,9 +1647,7 @@ int ec_GFp_nistp256_group_set_curve(EC_GROUP *group, const BIGNUM *p,
|
||||
|
||||
err:
|
||||
BN_CTX_end(ctx);
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -1899,21 +1897,11 @@ int ec_GFp_nistp256_points_mul(const EC_GROUP *group, EC_POINT *r,
|
||||
|
||||
err:
|
||||
BN_CTX_end(ctx);
|
||||
if (generator != NULL) {
|
||||
EC_POINT_free(generator);
|
||||
}
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
if (secrets != NULL) {
|
||||
OPENSSL_free(secrets);
|
||||
}
|
||||
if (pre_comp != NULL) {
|
||||
OPENSSL_free(pre_comp);
|
||||
}
|
||||
if (tmp_smallfelems != NULL) {
|
||||
OPENSSL_free(tmp_smallfelems);
|
||||
}
|
||||
EC_POINT_free(generator);
|
||||
BN_CTX_free(new_ctx);
|
||||
OPENSSL_free(secrets);
|
||||
OPENSSL_free(pre_comp);
|
||||
OPENSSL_free(tmp_smallfelems);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -226,9 +226,7 @@ int ec_GFp_simple_group_set_curve(EC_GROUP *group, const BIGNUM *p,
|
||||
|
||||
err:
|
||||
BN_CTX_end(ctx);
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -268,9 +266,7 @@ int ec_GFp_simple_group_get_curve(const EC_GROUP *group, BIGNUM *p, BIGNUM *a,
|
||||
ret = 1;
|
||||
|
||||
err:
|
||||
if (new_ctx) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -345,9 +341,7 @@ err:
|
||||
if (ctx != NULL) {
|
||||
BN_CTX_end(ctx);
|
||||
}
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -446,9 +440,7 @@ int ec_GFp_simple_set_Jprojective_coordinates_GFp(
|
||||
ret = 1;
|
||||
|
||||
err:
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -491,9 +483,7 @@ int ec_GFp_simple_get_Jprojective_coordinates_GFp(const EC_GROUP *group,
|
||||
ret = 1;
|
||||
|
||||
err:
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -612,9 +602,7 @@ int ec_GFp_simple_point_get_affine_coordinates(const EC_GROUP *group,
|
||||
|
||||
err:
|
||||
BN_CTX_end(ctx);
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -805,9 +793,7 @@ end:
|
||||
/* otherwise we already called BN_CTX_end */
|
||||
BN_CTX_end(ctx);
|
||||
}
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -934,9 +920,7 @@ int ec_GFp_simple_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a,
|
||||
|
||||
err:
|
||||
BN_CTX_end(ctx);
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -1053,9 +1037,7 @@ int ec_GFp_simple_is_on_curve(const EC_GROUP *group, const EC_POINT *point,
|
||||
|
||||
err:
|
||||
BN_CTX_end(ctx);
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -1168,9 +1150,7 @@ int ec_GFp_simple_cmp(const EC_GROUP *group, const EC_POINT *a,
|
||||
|
||||
end:
|
||||
BN_CTX_end(ctx);
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -1211,9 +1191,7 @@ int ec_GFp_simple_make_affine(const EC_GROUP *group, EC_POINT *point,
|
||||
|
||||
err:
|
||||
BN_CTX_end(ctx);
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -1358,9 +1336,7 @@ int ec_GFp_simple_points_make_affine(const EC_GROUP *group, size_t num,
|
||||
|
||||
err:
|
||||
BN_CTX_end(ctx);
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
if (prod_Z != NULL) {
|
||||
for (i = 0; i < num; i++) {
|
||||
if (prod_Z[i] == NULL) {
|
||||
|
@ -631,18 +631,10 @@ int ec_wNAF_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar,
|
||||
ret = 1;
|
||||
|
||||
err:
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
if (tmp != NULL) {
|
||||
EC_POINT_free(tmp);
|
||||
}
|
||||
if (wsize != NULL) {
|
||||
OPENSSL_free(wsize);
|
||||
}
|
||||
if (wNAF_len != NULL) {
|
||||
OPENSSL_free(wNAF_len);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
EC_POINT_free(tmp);
|
||||
OPENSSL_free(wsize);
|
||||
OPENSSL_free(wNAF_len);
|
||||
if (wNAF != NULL) {
|
||||
signed char **w;
|
||||
|
||||
@ -659,9 +651,7 @@ err:
|
||||
|
||||
OPENSSL_free(val);
|
||||
}
|
||||
if (val_sub != NULL) {
|
||||
OPENSSL_free(val_sub);
|
||||
}
|
||||
OPENSSL_free(val_sub);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -699,10 +689,8 @@ int ec_wNAF_precompute_mult(EC_GROUP *group, BN_CTX *ctx) {
|
||||
int ret = 0;
|
||||
|
||||
/* if there is an old EC_PRE_COMP object, throw it away */
|
||||
if (group->pre_comp) {
|
||||
ec_pre_comp_free(group->pre_comp);
|
||||
group->pre_comp = NULL;
|
||||
}
|
||||
ec_pre_comp_free(group->pre_comp);
|
||||
group->pre_comp = NULL;
|
||||
|
||||
generator = EC_GROUP_get0_generator(group);
|
||||
if (generator == NULL) {
|
||||
@ -841,12 +829,8 @@ err:
|
||||
if (ctx != NULL) {
|
||||
BN_CTX_end(ctx);
|
||||
}
|
||||
if (new_ctx != NULL) {
|
||||
BN_CTX_free(new_ctx);
|
||||
}
|
||||
if (pre_comp) {
|
||||
ec_pre_comp_free(pre_comp);
|
||||
}
|
||||
BN_CTX_free(new_ctx);
|
||||
ec_pre_comp_free(pre_comp);
|
||||
if (points) {
|
||||
EC_POINT **p;
|
||||
|
||||
@ -855,12 +839,8 @@ err:
|
||||
}
|
||||
OPENSSL_free(points);
|
||||
}
|
||||
if (tmp_point) {
|
||||
EC_POINT_free(tmp_point);
|
||||
}
|
||||
if (base) {
|
||||
EC_POINT_free(base);
|
||||
}
|
||||
EC_POINT_free(tmp_point);
|
||||
EC_POINT_free(base);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user