From: Petr Menšík Date: Thu, 22 Feb 2018 16:11:18 +0000 (+0100) Subject: Sanitize IDN initialization X-Git-Tag: v9.13.0~89^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=29b94bbb04014681afe61c1594b99f6ec30f6b1f;p=thirdparty%2Fbind9.git Sanitize IDN initialization Signed-off-by: Petr Menšík --- diff --git a/bin/dig/dighost.c b/bin/dig/dighost.c index b122a37f375..c5d027bd4f6 100644 --- a/bin/dig/dighost.c +++ b/bin/dig/dighost.c @@ -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;