mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 08:25:20 +09:00
dns-domain: make dns_name_change_suffix() work with an empty/null suffix
This commit is contained in:
@@ -27,7 +27,12 @@ int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags f
|
||||
int r = 0;
|
||||
|
||||
assert(name);
|
||||
assert(*name);
|
||||
|
||||
if (isempty(*name)) {
|
||||
if (dest && sz >= 1)
|
||||
dest[0] = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
n = *name;
|
||||
d = dest;
|
||||
@@ -649,12 +654,10 @@ int dns_name_change_suffix(const char *name, const char *old_suffix, const char
|
||||
int r, q;
|
||||
|
||||
assert(name);
|
||||
assert(old_suffix);
|
||||
assert(new_suffix);
|
||||
assert(ret);
|
||||
|
||||
n = name;
|
||||
s = old_suffix;
|
||||
s = strempty(old_suffix);
|
||||
|
||||
for (;;) {
|
||||
char ln[DNS_LABEL_MAX+1], ls[DNS_LABEL_MAX+1];
|
||||
|
||||
@@ -654,6 +654,9 @@ TEST(dns_name_change_suffix) {
|
||||
test_dns_name_change_suffix_one("", "", "piff.paff", 1, "piff.paff");
|
||||
test_dns_name_change_suffix_one("", "", "", 1, ".");
|
||||
test_dns_name_change_suffix_one("a", "b", "c", 0, NULL);
|
||||
test_dns_name_change_suffix_one("wau.wau", "wau", NULL, 1, "wau");
|
||||
test_dns_name_change_suffix_one("wau.wau", NULL, "wau", 1, "wau.wau.wau");
|
||||
test_dns_name_change_suffix_one("wau.wau", NULL, NULL, 1, "wau.wau");
|
||||
}
|
||||
|
||||
static void test_dns_name_suffix_one(const char *name, unsigned n_labels, const char *result, int ret) {
|
||||
|
||||
Reference in New Issue
Block a user