From 499a7288fe831ef51a9b0930fc67bcd97aa6c675 Mon Sep 17 00:00:00 2001 From: Jay Satiro Date: Mon, 1 May 2017 13:44:39 -0400 Subject: [PATCH] curl_setup: Ensure no more than one IDN lib is enabled Prior to this change it was possible for libcurl to be built with both Windows' native IDN lib (normaliz) and libidn2 enabled. It appears that doesn't offer any benefit --and could cause a bug-- since libcurl's IDN handling is written to use either one but not both. Bug: https://github.com/curl/curl/issues/1441#issuecomment-297689856 Reported-by: Gisle Vanem --- lib/curl_setup.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/curl_setup.h b/lib/curl_setup.h index dda1c751e..d22997cc9 100644 --- a/lib/curl_setup.h +++ b/lib/curl_setup.h @@ -588,11 +588,15 @@ int netware_init(void); #endif #endif -#if defined(HAVE_LIBIDN2) && defined(HAVE_IDN2_H) +#if defined(HAVE_LIBIDN2) && defined(HAVE_IDN2_H) && !defined(USE_WIN32_IDN) /* The lib and header are present */ #define USE_LIBIDN2 #endif +#if defined(USE_LIBIDN2) && defined(USE_WIN32_IDN) +#error "Both libidn2 and WinIDN are enabled, choose one." +#endif + #ifndef SIZEOF_TIME_T /* assume default size of time_t to be 32 bit */ #define SIZEOF_TIME_T 4