unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* [PATCH] config: do not overwrite symlinks when saving config file
@ 2013-03-02 21:24 Jani Nikula
  2013-03-02 21:58 ` Tomi Ollila
  0 siblings, 1 reply; 5+ messages in thread
From: Jani Nikula @ 2013-03-02 21:24 UTC (permalink / raw)
  To: notmuch

Use realpath on the config path before writing. If that fails,
fallback to the previous behaviour.

Previously 'notmuch setup' and 'notmuch config set' overwrote the
config file even if it was a symbolic link.
---
 notmuch-config.c |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/notmuch-config.c b/notmuch-config.c
index b5c2066..1e7389f 100644
--- a/notmuch-config.c
+++ b/notmuch-config.c
@@ -461,7 +461,7 @@ int
 notmuch_config_save (notmuch_config_t *config)
 {
     size_t length;
-    char *data;
+    char *data, *filename;
     GError *error = NULL;
 
     data = g_key_file_to_data (config->key_file, &length, NULL);
@@ -470,14 +470,20 @@ notmuch_config_save (notmuch_config_t *config)
 	return 1;
     }
 
-    if (! g_file_set_contents (config->filename, data, length, &error)) {
+    /* Try not to overwrite symlinks. */
+    filename = realpath (config->filename, NULL);
+
+    if (! g_file_set_contents (filename ? filename : config->filename,
+			       data, length, &error)) {
 	fprintf (stderr, "Error saving configuration to %s: %s\n",
 		 config->filename, error->message);
 	g_error_free (error);
+	free (filename);
 	g_free (data);
 	return 1;
     }
 
+    free (filename);
     g_free (data);
     return 0;
 }
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-03-03 18:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-02 21:24 [PATCH] config: do not overwrite symlinks when saving config file Jani Nikula
2013-03-02 21:58 ` Tomi Ollila
2013-03-03  9:32   ` [PATCH v2] " Jani Nikula
2013-03-03 14:18   ` [PATCH v3] " Jani Nikula
2013-03-03 18:38     ` Tomi Ollila

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).