diff options
author | Ray Strode <rstrode@redhat.com> | 2011-06-10 18:47:41 -0400 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2012-02-21 17:39:34 -0500 |
commit | 2895a09bc0666cf7b26190bdb648ad1f52c174da (patch) | |
tree | f43bcef5567e4517b8bf3fa8e3e7433f97edc243 | |
parent | ea6894303f7ebadb98bf4bf70a79c5bf6ef7cb90 (diff) | |
download | gconf-2895a09bc0666cf7b26190bdb648ad1f52c174da.tar.gz |
daemon: store daemon data in XDG_RUNTIME_DIR
If XDG_RUNTIME_DIR is available it's a much better
directory than /tmp since it ensures there's no
DoS possibilities
https://bugzilla.gnome.org/show_bug.cgi?id=652289
-rw-r--r-- | gconf/gconf-internals.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/gconf/gconf-internals.c b/gconf/gconf-internals.c index 9550b1a7..784bcb3f 100644 --- a/gconf/gconf-internals.c +++ b/gconf/gconf-internals.c @@ -2796,13 +2796,18 @@ gconf_get_daemon_dir (void) const char *tmpdir; subdir = g_strconcat ("gconfd-", g_get_user_name (), NULL); - - if (g_getenv ("GCONF_TMPDIR")) { - tmpdir = g_getenv ("GCONF_TMPDIR"); - } else { - tmpdir = g_get_tmp_dir (); - } - + + if (g_getenv ("GCONF_TMPDIR")) + tmpdir = g_getenv ("GCONF_TMPDIR"); + else if (g_getenv ("XDG_RUNTIME_DIR")) + { + g_free (subdir); + subdir = g_strdup ("gconfd"); + tmpdir = g_getenv ("XDG_RUNTIME_DIR"); + } + else + tmpdir = g_get_tmp_dir (); + s = g_build_filename (tmpdir, subdir, NULL); g_free (subdir); |