From 5fe7a0a7de9027bbae1a20738da613d6591feec8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Wed, 5 Dec 2018 12:27:29 +0100 Subject: [PATCH] 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. --- src/basic/hostname-util.c | 4 +--- src/test/test-hostname-util.c | 2 ++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/basic/hostname-util.c b/src/basic/hostname-util.c index 0230821d22a..5bfa028b393 100644 --- a/src/basic/hostname-util.c +++ b/src/basic/hostname-util.c @@ -143,9 +143,7 @@ char* hostname_cleanup(char *s) { assert(s); - strshorten(s, HOST_NAME_MAX); - - for (p = s, d = s, dot = hyphen = true; *p; p++) + for (p = s, d = s, dot = hyphen = true; *p && d - s < HOST_NAME_MAX; p++) if (*p == '.') { if (dot || hyphen) continue; diff --git a/src/test/test-hostname-util.c b/src/test/test-hostname-util.c index 596830f5f2a..4126a24ceb9 100644 --- a/src/test/test-hostname-util.c +++ b/src/test/test-hostname-util.c @@ -85,6 +85,8 @@ static void test_hostname_cleanup(void) { assert_se(streq(hostname_cleanup(s), "foo.bar")); s = strdupa("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); assert_se(streq(hostname_cleanup(s), "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")); + s = strdupa("xxxx........xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"); + assert_se(streq(hostname_cleanup(s), "xxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx")); } static void test_read_etc_hostname(void) { -- 2.39.2