mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-22 07:18:54 -04:00
While idn2_to_unicode_8zlz() takes a 'flags' argument, it is ignored and
thus cannot be used to perform IDN checks on the output string.
The bug in libidn2 versions before 2.0.5 was not that a call to
idn2_to_unicode_8zlz() with certain flags set did not cause IDN checks
to be performed. The bug was that idn2_to_unicode_8zlz() did not check
whether a conversion can be performed between UTF-8 and the current
locale's character encoding. In other words, with libidn2 version
2.0.5+, if the current locale's character encoding is ASCII, then
idn2_to_unicode_8zlz() will fail when it is passed any Punycode string
which decodes to a non-ASCII string, even if it is a valid IDNA2008
name.
Rework idn_ace_to_locale() so that invalid IDNA2008 names are properly
and consistently detected for all libidn2 versions and locales.
Update the "idna" system test accordingly. Add checks for processing a
server response containing Punycode which decodes to an invalid IDNA2008
name. Fix invalid subtest description.
(cherry picked from commit
|
||
|---|---|---|
| .. | ||
| bigtest | ||
| optional | ||
| pkcs11 | ||
| startperf | ||
| system | ||
| testdata/wire | ||
| virtual-time | ||
| win32 | ||
| .gitignore | ||
| cfg_test.c | ||
| fromhex.pl | ||
| headerdep_test.sh.in | ||
| Makefile.in | ||
| makejournal.c | ||
| named.conf | ||
| wire_test.c | ||