about summary refs log tree commit diff
path: root/src/settings/plugins/keyfile/writer.c
diff options
context:
space:
mode:
authorSjoerd Simons <sjoerd@luon.net>2013-10-25 21:21:07 +0200
committerSjoerd Simons <sjoerd@luon.net>2013-10-25 21:21:07 +0200
commite83d1de9b746dbc078ac1cf45f1798e1bc6b7e2f (patch)
treec36a40d79a5ae7d2bbca7d240d0a6f664049b435 /src/settings/plugins/keyfile/writer.c
parent26283b4c9e5035574a6c168003e7f1da53a8f32a (diff)
parenta4256940da049f91bbbea5e53e469a59ea9c10f7 (diff)
Merge tag 'upstream/0.9.8.8' into experimental
Upstream version 0.9.8.8
Diffstat (limited to 'src/settings/plugins/keyfile/writer.c')
-rw-r--r--src/settings/plugins/keyfile/writer.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/settings/plugins/keyfile/writer.c b/src/settings/plugins/keyfile/writer.c
index 0b8c1592..38061a5d 100644
--- a/src/settings/plugins/keyfile/writer.c
+++ b/src/settings/plugins/keyfile/writer.c
@@ -990,6 +990,7 @@ _internal_write_connection (NMConnection *connection,
 	char *filename = NULL, *path;
 	const char *id;
 	WriteInfo info;
+	GError *local_err = NULL;
 
 	if (out_path)
 		g_return_val_if_fail (*out_path == NULL, FALSE);
@@ -1054,7 +1055,16 @@ _internal_write_connection (NMConnection *connection,
 	if (existing_path != NULL && strcmp (path, existing_path) != 0)
 		unlink (existing_path);
 
-	g_file_set_contents (path, data, len, error);
+	g_file_set_contents (path, data, len, &local_err);
+	if (local_err) {
+		g_set_error (error, KEYFILE_PLUGIN_ERROR, 0,
+		             "%s.%d: error writing to file '%s': %s", __FILE__, __LINE__,
+		             path, local_err->message);
+		g_error_free (local_err);
+		g_free (path);
+		goto out;
+	}
+
 	if (chown (path, owner_uid, owner_grp) < 0) {
 		g_set_error (error, KEYFILE_PLUGIN_ERROR, 0,
 		             "%s.%d: error chowning '%s': %d", __FILE__, __LINE__,