diff options
author | joe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845> | 2013-07-31 15:22:20 +0000 |
---|---|---|
committer | joe <joe@61a7d7f5-40b7-0310-9c16-bb0ea8cb1845> | 2013-07-31 15:22:20 +0000 |
commit | b70c6666affe0631a9998ccf41ae8fca83ff31c1 (patch) | |
tree | 3ece14d3bcc351081274a27b773fd460d970b9fc | |
parent | 4771cd9215aa8dc49607fb9bfd19b81a3dffef55 (diff) | |
download | neon-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.c | 7 |
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; |