Skip to content

Commit 5fe7a0a

Browse files
committed
basic/hostname-util: do truncation last when cleaning up
This allows more of the original name to be used if there are invalid chars in the beginning.
1 parent d65652f commit 5fe7a0a

File tree

2 files changed

+3
-3
lines changed

2 files changed

+3
-3
lines changed

src/basic/hostname-util.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,9 +143,7 @@ char* hostname_cleanup(char *s) {
143143

144144
assert(s);
145145

146-
strshorten(s, HOST_NAME_MAX);
147-
148-
for (p = s, d = s, dot = hyphen = true; *p; p++)
146+
for (p = s, d = s, dot = hyphen = true; *p && d - s < HOST_NAME_MAX; p++)
149147
if (*p == '.') {
150148
if (dot || hyphen)
151149
continue;

src/test/test-hostname-util.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ static void test_hostname_cleanup(void) {
8585
assert_se(streq(hostname_cleanup(s), "foo.bar"));
8686
s = strdupa("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
8787
assert_se(streq(hostname_cleanup(s), "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"));
88+
s = strdupa("xxxx........xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
89+
assert_se(streq(hostname_cleanup(s), "xxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"));
8890
}
8991

9092
static void test_read_etc_hostname(void) {

0 commit comments

Comments
 (0)