]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Sanitize IDN initialization
authorPetr Menšík <pemensik@redhat.com>
Thu, 22 Feb 2018 16:11:18 +0000 (17:11 +0100)
committerOndřej Surý <ondrej@sury.org>
Sat, 17 Mar 2018 13:13:47 +0000 (13:13 +0000)
Signed-off-by: Petr Menšík <pemensik@redhat.com>
bin/dig/dighost.c

index b122a37f37526bc33dc4bf90c8e78399d1c11165..c5d027bd4f6f10961b278598eddd1b6f9f5237ca 100644 (file)
@@ -146,10 +146,6 @@ static void idn_initialize(void);
 static isc_result_t idn_locale_to_ace(const char *from,
                char *to,
                size_t tolen);
-
-#ifdef WITH_IDNKIT
-static isc_result_t idnkit_initialize(void);
-#endif
 #endif /* WITH_IDN_SUPPORT */
 
 #ifdef WITH_IDN_OUT_SUPPORT
@@ -164,9 +160,6 @@ static isc_result_t output_filter(isc_buffer_t *buffer,
 #ifdef WITH_IDNKIT
 int idnoptions = 0;
 #endif
-static isc_result_t idn_ace_to_locale(const char *from,
-               char *to,
-               size_t tolen);
 #endif /* WITH_IDN_OUT_SUPPORT */
 
 isc_socket_t *keep = NULL;
@@ -1322,6 +1315,11 @@ setup_system(isc_boolean_t ipv4only, isc_boolean_t ipv6only) {
 
        irs_resconf_destroy(&resconf);
 
+#ifdef HAVE_SETLOCALE
+       /* Set locale */
+       (void)setlocale(LC_ALL, "");
+#endif
+
 #ifdef WITH_IDN_SUPPORT
        idn_initialize();
 #endif
@@ -4248,25 +4246,6 @@ destroy_libs(void) {
                isc_mem_destroy(&mctx);
 }
 
-#ifdef WITH_IDN_SUPPORT
-static void
-idn_initialize(void) {
-#ifdef WITH_IDNKIT
-       isc_result_t result;
-#endif
-
-#ifdef HAVE_SETLOCALE
-       /* Set locale */
-       (void)setlocale(LC_ALL, "");
-#endif
-
-#ifdef WITH_IDNKIT
-       /* Create configuration context. */
-       result = idnkit_initialize();
-       check_result(result, "idnkit initializationt");
-#endif
-}
-
 #ifdef WITH_IDN_OUT_SUPPORT
 static isc_result_t
 output_filter(isc_buffer_t *buffer, unsigned int used_org,
@@ -4324,6 +4303,7 @@ output_filter(isc_buffer_t *buffer, unsigned int used_org,
 }
 #endif
 
+#ifdef WITH_IDN_SUPPORT
 #ifdef WITH_IDNKIT
 static void
 idnkit_check_result(idn_result_t result, const char *msg) {
@@ -4332,10 +4312,11 @@ idnkit_check_result(idn_result_t result, const char *msg) {
        }
 }
 
-static isc_result_t
-idnkit_initialize(void) {
+static void
+idn_initialize(void) {
        idn_result_t result;
 
+       /* Create configuration context. */
        result = idn_nameinit(1);
        idnkit_check_result(result, "idnkit api initialization failed");
        return (ISC_R_SUCCESS);
@@ -4372,6 +4353,10 @@ idn_ace_to_locale(const char *from, char *to, size_t tolen) {
 #endif /* WITH_IDNKIT */
 
 #ifdef WITH_LIBIDN2
+static void
+idn_initialize(void) {
+}
+
 static isc_result_t
 idn_locale_to_ace(const char *from, char *to, size_t tolen) {
        int res;