From 4c46c829f5ed7c37b3313c67a6662b7332c1ff7f Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Thu, 14 Jul 2022 07:14:22 +0000 Subject: [PATCH] openssl: fix BoringSSL symbol conflicts with LDAP and Schannel Same issue as here [1], but this time when building curl with BoringSSL for Windows with LDAP(S) or Schannel support enabled. Apply the same fix [2] for these source files as well. This can also be fixed by moving `#include "urldata.h"` _before_ including `winldap.h` and `schnlsp.h` respectively. This seems like a cleaner fix, though I'm not sure why it works and if it has any downside. [1] https://github.com/curl/curl/issues/5669 [2] https://github.com/curl/curl/commit/fbe07c6829ba8c5793c84c2856526e19e9029ab9 Co-authored-by: Jay Satiro Closes #9110 --- lib/ldap.c | 12 ++++++++++++ lib/vtls/schannel.h | 12 ++++++++++++ 2 files changed, 24 insertions(+) diff --git a/lib/ldap.c b/lib/ldap.c index 51a32dc964..410dc72e8a 100644 --- a/lib/ldap.c +++ b/lib/ldap.c @@ -37,6 +37,18 @@ * OpenLDAP library versions, USE_OPENLDAP shall not be defined. */ +/* Wincrypt must be included before anything that could include OpenSSL. */ +#if defined(USE_WIN32_CRYPTO) +#include +/* Undefine wincrypt conflicting symbols for BoringSSL. */ +#undef X509_NAME +#undef X509_EXTENSIONS +#undef PKCS7_ISSUER_AND_SERIAL +#undef PKCS7_SIGNER_INFO +#undef OCSP_REQUEST +#undef OCSP_RESPONSE +#endif + #ifdef USE_WIN32_LDAP /* Use Windows LDAP implementation. */ # include # ifndef LDAP_VENDOR_NAME diff --git a/lib/vtls/schannel.h b/lib/vtls/schannel.h index 0b4c4d9344..05323c7a7e 100644 --- a/lib/vtls/schannel.h +++ b/lib/vtls/schannel.h @@ -28,6 +28,18 @@ #ifdef USE_SCHANNEL +/* Wincrypt must be included before anything that could include OpenSSL. */ +#if defined(USE_WIN32_CRYPTO) +#include +/* Undefine wincrypt conflicting symbols for BoringSSL. */ +#undef X509_NAME +#undef X509_EXTENSIONS +#undef PKCS7_ISSUER_AND_SERIAL +#undef PKCS7_SIGNER_INFO +#undef OCSP_REQUEST +#undef OCSP_RESPONSE +#endif + #include #include #include "curl_sspi.h" -- 2.47.3