blob: 3fd55739aaad3545bbaa91e31cdf4a12117d5f0b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
diff -up bind-9.5.0b1/bin/dig/dighost.c.libidn3 bind-9.5.0b1/bin/dig/dighost.c
--- bind-9.5.0b1/bin/dig/dighost.c.libidn3 2007-12-20 13:24:27.000000000 +0100
+++ bind-9.5.0b1/bin/dig/dighost.c 2007-12-20 13:27:10.000000000 +0100
@@ -1859,10 +1859,13 @@ setup_lookup(dig_lookup_t *lookup) {
if (lookup->origin != NULL) {
result = libidn_locale_to_utf8 (lookup->origin->origin, utf8_str);
check_result (result, "convert origin to UTF-8");
- if (len + strlen (utf8_str) < MXNAME)
- (void) strcpy (utf8_name + len, utf8_str);
- else
- fatal ("Too long name + origin");
+ if (len > 0 && utf8_name[len - 1] != '.') {
+ utf8_name[len++] = '.';
+ if (len + strlen (utf8_str) < MXNAME)
+ (void) strcpy (utf8_name + len, utf8_str);
+ else
+ fatal ("Too long name + origin");
+ }
}
result = libidn_utf8_to_ascii (utf8_name, ascii_name);
|