crypto.ecdsa: fix memleaks, reported by the CI sanitizer jobs (#23450)

This commit is contained in:
Felipe Pena 2025-01-13 00:01:33 -03:00 committed by GitHub
parent d2b30df19c
commit 9d1b855129
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 7 additions and 0 deletions

View File

@ -31,6 +31,7 @@ fn test_ecdsa_signing_with_options() {
// Verify the signature
is_valid := pub_key.verify(message, signature) or { panic(err) }
println('Signature valid: ${is_valid}')
key_free(pub_key.key)
assert is_valid
}
@ -97,6 +98,8 @@ fn test_private_key_equality_on_different_curve() ! {
// using different group
priv_key2 := new_key_from_seed(seed, nid: .secp384r1) or { panic(err) }
assert !priv_key1.equal(priv_key2)
key_free(priv_key1.key)
key_free(priv_key2.key)
}
fn test_public_key_equal() ! {

View File

@ -93,6 +93,7 @@ pub fn pubkey_from_bytes(bytes []u8) !PublicKey {
&& nidgroup != nid_secp256k1 {
return error('Unsupported group')
}
C.EVP_PKEY_free(pub_key)
// Its OK to return
return PublicKey{
key: eckey

View File

@ -34,6 +34,7 @@ fn test_load_pubkey_from_der_serialized_bytes() ! {
hashed_msg := sha512.sum384(message_tobe_signed.bytes())
status_with_hashed := pbkey.verify(hashed_msg, expected_signature)!
assert status_with_hashed == true
key_free(pbkey.key)
}
fn test_for_pubkey_bytes() ! {
@ -45,4 +46,6 @@ fn test_for_pubkey_bytes() ! {
assert pvkey.seed()!.hex() == pv
pbkey := pvkey.public_key()!
assert pbkey.bytes()!.hex() == pb
key_free(pbkey.key)
key_free(pvkey.key)
}