From: Nikos Mavrogiannopoulos Date: Sun, 19 Feb 2012 19:33:56 +0000 (+0100) Subject: Deinitialize the correct number of certificates. Reported by Remi Gacogne. X-Git-Tag: gnutls_3_0_14~26 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9c62f4feb2bdd6fbbb06eb0c60bfdea80d21bbb8;p=thirdparty%2Fgnutls.git Deinitialize the correct number of certificates. Reported by Remi Gacogne. --- diff --git a/lib/auth/cert.c b/lib/auth/cert.c index b2bfca896d..7582c759ae 100644 --- a/lib/auth/cert.c +++ b/lib/auth/cert.c @@ -1172,6 +1172,7 @@ _gnutls_proc_x509_server_certificate (gnutls_session_t session, if (ret < 0) { gnutls_assert (); + peer_certificate_list_size = j; goto cleanup; } diff --git a/lib/gnutls_pcert.c b/lib/gnutls_pcert.c index 17e9c4f764..1211e2d6fb 100644 --- a/lib/gnutls_pcert.c +++ b/lib/gnutls_pcert.c @@ -89,6 +89,7 @@ size_t sz; if (ret < 0) { gnutls_pubkey_deinit(pcert->pubkey); + pcert->pubkey = NULL; ret = gnutls_assert_val(ret); goto cleanup; } @@ -96,7 +97,7 @@ size_t sz; return 0; cleanup: - gnutls_free(pcert->cert.data); + _gnutls_free_datum(&pcert->cert); return ret; } @@ -281,6 +282,7 @@ size_t sz; if (ret < 0) { gnutls_pubkey_deinit(pcert->pubkey); + pcert->pubkey = NULL; ret = gnutls_assert_val(ret); goto cleanup; } @@ -288,7 +290,7 @@ size_t sz; return 0; cleanup: - gnutls_free(pcert->cert.data); + _gnutls_free_datum(&pcert->cert); return ret; } @@ -373,8 +375,7 @@ gnutls_pcert_deinit (gnutls_pcert_st *pcert) { gnutls_pubkey_deinit(pcert->pubkey); pcert->pubkey = NULL; - gnutls_free(pcert->cert.data); - pcert->cert.data = NULL; + _gnutls_free_datum(&pcert->cert); } /* Converts the first certificate for the cert_auth_info structure