comparison src/tls.c @ 5887:6eca500211f4

Prototype for X509_check_host() has changed, detect this in configure.ac ChangeLog addition: 2015-04-09 Aidan Kehoe <kehoea@parhasard.net> * configure.ac: If X509_check_host() is available, check the number of arguments it takes. Don't use it if it takes any number of arguments other than five. Also don't use it if <openssl/x509v3.h> does not declare it, since if that is so there is no portable way to tell how many arguments it should take, and so we would end up smashing the stack. * configure: Regenerate. src/ChangeLog addition: 2015-04-09 Aidan Kehoe <kehoea@parhasard.net> * tls.c: #include <openssl/x509v3.h> for its prototype for X509_check_host(). * tls.c (tls_open): Pass the new fifth argument to X509_check_host().
author Aidan Kehoe <kehoea@parhasard.net>
date Thu, 09 Apr 2015 14:27:02 +0100
parents 5d5aeb79edb4
children a85efdabe237
comparison
equal deleted inserted replaced
5886:c96000075e49 5887:6eca500211f4
779 779
780 #ifdef HAVE_OPENSSL 780 #ifdef HAVE_OPENSSL
781 #include <unistd.h> 781 #include <unistd.h>
782 #include <openssl/conf.h> 782 #include <openssl/conf.h>
783 #include <openssl/err.h> 783 #include <openssl/err.h>
784
785 #ifdef HAVE_X509_CHECK_HOST
786 #include <openssl/x509v3.h>
787 #endif
784 788
785 /* The context used to create connections */ 789 /* The context used to create connections */
786 static SSL_CTX *ssl_ctx; 790 static SSL_CTX *ssl_ctx;
787 791
788 static Lisp_Object 792 static Lisp_Object
1021 X509_verify_cert_error_string (cert_err)); 1025 X509_verify_cert_error_string (cert_err));
1022 goto error; 1026 goto error;
1023 } 1027 }
1024 1028
1025 #ifdef HAVE_X509_CHECK_HOST 1029 #ifdef HAVE_X509_CHECK_HOST
1026 err = X509_check_host (peer_cert, (const unsigned char *) hostname, 1030 err = X509_check_host (peer_cert, (const char *) hostname,
1027 strlen (hostname), 0); 1031 strlen (hostname), 0, NULL);
1028 if (err < 0) 1032 if (err < 0)
1029 { 1033 {
1030 warn_when_safe (Qtls_error, Qerror, 1034 warn_when_safe (Qtls_error, Qerror,
1031 "Out of memory while checking certificate"); 1035 "Out of memory while checking certificate");
1032 goto error; 1036 goto error;