Fix double-free in lib/hx509/crypto.c

This commit is contained in:
Nicolas Williams
2016-04-14 10:27:03 -05:00
parent 6bbe7f0ffa
commit 9df88205ba

View File

@@ -438,7 +438,7 @@ ecdsa_create_signature(hx509_context context,
ret = set_digest_alg(signatureAlgorithm, sig_oid, "\x05\x00", 2); ret = set_digest_alg(signatureAlgorithm, sig_oid, "\x05\x00", 2);
if (ret) { if (ret) {
hx509_clear_error_string(context); hx509_clear_error_string(context);
goto error; return ret;
} }
} }
@@ -448,11 +448,8 @@ ecdsa_create_signature(hx509_context context,
data, data,
NULL, NULL,
&indata); &indata);
if (ret) { if (ret)
if (signatureAlgorithm)
free_AlgorithmIdentifier(signatureAlgorithm);
goto error; goto error;
}
sig->length = ECDSA_size(signer->private_key.ecdsa); sig->length = ECDSA_size(signer->private_key.ecdsa);
sig->data = malloc(sig->length); sig->data = malloc(sig->length);