summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2013-07-31 15:22:20 +0000
committerjoe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845>2013-07-31 15:22:20 +0000
commitb70c6666affe0631a9998ccf41ae8fca83ff31c1 (patch)
tree3ece14d3bcc351081274a27b773fd460d970b9fc
parent4771cd9215aa8dc49607fb9bfd19b81a3dffef55 (diff)
downloadneon-b70c6666affe0631a9998ccf41ae8fca83ff31c1.tar.gz
* src/ne_gnutls.c (provide_client_cert): Avoid segfaults with GnuTLS 3.x.
git-svn-id: http://svn.webdav.org/repos/projects/neon/trunk@1922 61a7d7f5-40b7-0310-9c16-bb0ea8cb1845
-rw-r--r--src/ne_gnutls.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/ne_gnutls.c b/src/ne_gnutls.c
index e7869a8..08d78cc 100644
--- a/src/ne_gnutls.c
+++ b/src/ne_gnutls.c
@@ -611,7 +611,12 @@ static int provide_client_cert(gnutls_session_t session,
if (sess->client_cert) {
gnutls_certificate_type_t type = gnutls_certificate_type_get(session);
- if (type == GNUTLS_CRT_X509) {
+ if (type == GNUTLS_CRT_X509
+#if LIBGNUTLS_VERSION_NUMBER > 0x030000
+ /* Ugly hack; prevent segfaults w/GnuTLS 3.0. */
+ && sess->client_cert->pkey != NULL
+#endif
+ ) {
NE_DEBUG(NE_DBG_SSL, "Supplying client certificate.\n");
st->type = type;