From 74ce9dde81b04174a29df57e8494f405d173c7ba Mon Sep 17 00:00:00 2001 From: "Samantha N. Bueno" Date: Mon, 11 Jan 2016 14:56:56 -0500 Subject: [PATCH] Handle hostname and dns setting properly in linuxrc.s390 (#1214266) Translate all chars in hostname and DNS search domain to lowercase. This ensures we're compliant with RFC1738 (section 2.1) and RFC4343. Resolves: rhbz#1214266 --- loader/linuxrc.s390 | 4 ++-- loader/loader.c | 6 +++--- loader/net.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/loader/linuxrc.s390 b/loader/linuxrc.s390 index 94ba4c0..1290a70 100644 --- a/loader/linuxrc.s390 +++ b/loader/linuxrc.s390 @@ -1823,7 +1823,7 @@ function syntax_check_hostname() { } function handle_hostname() { - if ! hostname $HOSTNAME; then + if ! hostname "${HOSTNAME,,}"; then echo $"Could not configure hostname $HOSTNAME" return 1 fi @@ -2369,7 +2369,7 @@ function syntax_check_searchdns() { local allgood="yes" while read dnsitem; do syntax_check_domainname "$dnsitem" $"Not a valid DNS search domain: $dnsitem" || allgood="no" - done < <(echo $SEARCHDNS | sed 's/:/\n/g') + done < <(echo "${SEARCHDNS,,}" | sed 's/:/\n/g') if [ "$allgood" = "yes" ]; then return 0 else diff --git a/loader/loader.c b/loader/loader.c index a8cbb1b..9769079 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -798,7 +798,7 @@ static void readNetInfo(struct loaderData_s ** ld) { } else if (!g_strcmp0(pair[0], "MACADDR")) { loaderData->macaddr = strdup(val); } else if (!g_strcmp0(pair[0], "HOSTNAME")) { - loaderData->hostname = strdup(val); + loaderData->hostname = strdup(str2lower(val)); } } @@ -1095,7 +1095,7 @@ static void parseCmdLineFlags(struct loaderData_s * loaderData, setStage2LocFromCmdline(argv[i] + 7, loaderData); } else if (!strncasecmp(argv[i], "hostname=", 9)) - loaderData->hostname = strdup(argv[i] + 9); + loaderData->hostname = strdup(strlower(argv[i] + 9)); else if (!strncasecmp(argv[i], "ip=", 3)) parseCmdLineIp(loaderData, argv[i]); #ifdef ENABLE_IPV6 @@ -1682,7 +1682,7 @@ static char *doLoaderMain(struct loaderData_s *loaderData, /* set the hostname if we have that */ if (loaderData->hostname) { - if (sethostname(loaderData->hostname, + if (sethostname(str2lower(loaderData->hostname), strlen(loaderData->hostname))) { logMessage(ERROR, "error setting hostname to %s", loaderData->hostname); diff --git a/loader/net.c b/loader/net.c index 43c107c..102257d 100644 --- a/loader/net.c +++ b/loader/net.c @@ -380,7 +380,7 @@ void setupIfaceStruct(iface_t * iface, struct loaderData_s * loaderData) { if (loaderData->hostname) { logMessage(INFO, "setting specified hostname of %s", loaderData->hostname); - iface->hostname = strdup(loaderData->hostname); + iface->hostname = strdup(str2lower(loaderData->hostname)); } if (loaderData->mtu) { -- 2.4.3