]> granicus.if.org Git - curl/commitdiff
curl_setup: Ensure no more than one IDN lib is enabled
authorJay Satiro <raysatiro@yahoo.com>
Mon, 1 May 2017 17:44:39 +0000 (13:44 -0400)
committerJay Satiro <raysatiro@yahoo.com>
Mon, 1 May 2017 18:48:34 +0000 (14:48 -0400)
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

index dda1c751e39756d696b5693f4d4c6626a556ad72..d22997cc999906387c74ddd183e67c45ad820b25 100644 (file)
@@ -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