From 1a411fae81606aa66bf6f0f211fbdf576cb7da21 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Tue, 21 Oct 2008 17:56:46 +0000 Subject: [PATCH] 2008-10-21 Dan Williams * src/NetworkManagerPolicy.c - (update_etc_hosts): don't leak errors, and ensure that g_file_set_contents() gets a valid error placeholder (rh #461933) git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4201 4912f4e0-d625-0410-9fb7-b9a5a253dbdc --- ChangeLog | 6 ++++++ src/NetworkManagerPolicy.c | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/ChangeLog b/ChangeLog index 9633b98cd0..5c37084d99 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-10-21 Dan Williams + + * src/NetworkManagerPolicy.c + - (update_etc_hosts): don't leak errors, and ensure that + g_file_set_contents() gets a valid error placeholder (rh #461933) + 2008-10-21 Dan Williams * src/nm-manager.c diff --git a/src/NetworkManagerPolicy.c b/src/NetworkManagerPolicy.c index bfa3540941..5f0970457d 100644 --- a/src/NetworkManagerPolicy.c +++ b/src/NetworkManagerPolicy.c @@ -266,6 +266,8 @@ update_etc_hosts (const char *hostname) nm_warning ("%s: couldn't read " SYSCONFDIR "/hosts: (%d) %s", __func__, error ? error->code : 0, (error && error->message) ? error->message : "(unknown)"); + if (error) + g_error_free (error); } else { lines = g_strsplit_set (contents, "\n\r", 0); g_free (contents); @@ -312,10 +314,13 @@ update_etc_hosts (const char *hostname) g_string_append (new_contents, "127.0.0.1\t" FALLBACK_HOSTNAME "\tlocalhost"); } + error = NULL; if (!g_file_set_contents (SYSCONFDIR "/hosts", new_contents->str, -1, &error)) { nm_warning ("%s: couldn't update " SYSCONFDIR "/hosts: (%d) %s", __func__, error ? error->code : 0, (error && error->message) ? error->message : "(unknown)"); + if (error) + g_error_free (error); } else success = TRUE;