Mercurial > hg > xemacs-beta
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; |