From e1eee774971b99c9281ede14f0a3034b63ea69a6 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Mon, 3 May 2010 20:34:22 -0700 Subject: [PATCH] hostname: return NULL from failed hostname lookup, not zero-length string --- src/nm-policy-hostname.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/nm-policy-hostname.c b/src/nm-policy-hostname.c index 02eb560263..a273a9202f 100644 --- a/src/nm-policy-hostname.c +++ b/src/nm-policy-hostname.c @@ -51,8 +51,12 @@ static gboolean hostname_thread_run_cb (gpointer user_data) { HostnameThread *ht = (HostnameThread *) user_data; + const char *hostname = NULL; - (*ht->callback) (ht, ht->ret, ht->hostname, ht->user_data); + if (strlen (ht->hostname)) + hostname = ht->hostname; + + (*ht->callback) (ht, ht->ret, hostname, ht->user_data); return FALSE; } @@ -148,9 +152,14 @@ nm_policy_set_system_hostname (const char *new_hostname, const char *msg) { char old_hostname[HOST_NAME_MAX + 1]; int ret = 0; - const char *name = new_hostname ? new_hostname : FALLBACK_HOSTNAME; + const char *name; gboolean set_hostname = TRUE, changed = FALSE; + if (new_hostname) + g_warn_if_fail (strlen (new_hostname)); + + name = (new_hostname && strlen (new_hostname)) ? new_hostname : FALLBACK_HOSTNAME; + old_hostname[HOST_NAME_MAX] = '\0'; errno = 0; ret = gethostname (old_hostname, HOST_NAME_MAX);