In gnutls_certificate_set_x509_key() cleanup, the pcert elements should
be deinitialized, freeing pcert's pubkey and cert fields.
Signed-off-by: Tom Carroll <incentivedesign@gmail.com>
gnutls_x509_privkey_t key)
{
int ret;
+ int npcerts = 0;
gnutls_privkey_t pkey;
gnutls_pcert_st *pcerts = NULL;
gnutls_str_array_t names;
gnutls_assert();
goto cleanup;
}
+ npcerts = cert_list_size;
ret =
_gnutls_certificate_credential_append_keypair(res, pkey, names, pcerts,
- cert_list_size);
+ npcerts);
if (ret < 0) {
gnutls_assert();
goto cleanup;
CRED_RET_SUCCESS(res);
cleanup:
+ while (npcerts-- > 0)
+ gnutls_pcert_deinit(&pcerts[npcerts]);
gnutls_free(pcerts);
_gnutls_str_array_clear(&names);
return ret;