1 |
diff -Naurp bind-9.9.5/bin/dig/dighost.c bind-9.9.5.oden/bin/dig/dighost.c |
2 |
--- bind-9.9.5/bin/dig/dighost.c 2014-02-02 13:59:37.269247706 +0100 |
3 |
+++ bind-9.9.5.oden/bin/dig/dighost.c 2014-02-02 13:59:47.847248298 +0100 |
4 |
@@ -2147,10 +2147,13 @@ setup_lookup(dig_lookup_t *lookup) { |
5 |
if (lookup->origin != NULL) { |
6 |
result = libidn_locale_to_utf8 (lookup->origin->origin, utf8_str); |
7 |
check_result (result, "convert origin to UTF-8"); |
8 |
- if (len + strlen (utf8_str) < MXNAME) |
9 |
- (void) strcpy (utf8_name + len, utf8_str); |
10 |
- else |
11 |
- fatal ("Too long name + origin"); |
12 |
+ if (len > 0 && utf8_name[len - 1] != '.') { |
13 |
+ utf8_name[len++] = '.'; |
14 |
+ if (len + strlen (utf8_str) < MXNAME) |
15 |
+ (void) strcpy (utf8_name + len, utf8_str); |
16 |
+ else |
17 |
+ fatal ("Too long name + origin"); |
18 |
+ } |
19 |
} |
20 |
|
21 |
result = libidn_utf8_to_ascii (utf8_name, ascii_name); |