summaryrefslogtreecommitdiff
path: root/dconf-0.40.0-permissions.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dconf-0.40.0-permissions.patch')
-rw-r--r--dconf-0.40.0-permissions.patch31
1 files changed, 31 insertions, 0 deletions
diff --git a/dconf-0.40.0-permissions.patch b/dconf-0.40.0-permissions.patch
new file mode 100644
index 0000000..151b790
--- /dev/null
+++ b/dconf-0.40.0-permissions.patch
@@ -0,0 +1,31 @@
+--- a/gvdb/gvdb-builder.c
++++ b/gvdb/gvdb-builder.c
+@@ -21,6 +21,7 @@
+ #include "gvdb-format.h"
+
+ #include <glib.h>
++#include <glib/gstdio.h>
+ #include <fcntl.h>
+ #if !defined(G_OS_WIN32) || !defined(_MSC_VER)
+ #include <unistd.h>
+@@ -509,13 +510,20 @@ gvdb_table_write_contents (GHashTable *table,
+ gboolean status;
+ FileBuilder *fb;
+ GString *str;
++ GStatBuf buf;
++ gint stat_ret;
+
+ fb = file_builder_new (byteswap);
+ file_builder_add_hash (fb, table, &root);
+ str = file_builder_serialise (fb, root);
+
++ stat_ret = g_stat (filename, &buf);
++
+ status = g_file_set_contents (filename, str->str, str->len, error);
+ g_string_free (str, TRUE);
+
++ if (stat_ret == 0)
++ g_chmod (filename, buf.st_mode);
++
+ return status;
+ }