Bug 594034 - Use g_mkstemp_full() when creating the replacement file

Previous code used g_mkstemp(). But when using
G_FILE_CREATE_REPLACE_DESTINATION, no attempt was made to ensure proper
mode and flags of the created temporary file. The visible issue was that
the file was always created with mode 0600 as opposed to using 0666.
(The invisible issue was that O_RDWR was used instead of O_WRONLY.)
This commit is contained in:
Benjamin Otte
2009-09-03 15:39:57 +02:00
parent 24bec5c5bd
commit 4114f1214c
5 changed files with 77 additions and 72 deletions

View File

@@ -867,7 +867,7 @@ handle_overwrite_open (const char *filename,
tmp_filename = g_build_filename (dirname, ".goutputstream-XXXXXX", NULL);
g_free (dirname);
tmpfd = g_mkstemp (tmp_filename);
tmpfd = g_mkstemp_full (tmp_filename, (readable ? O_RDWR : O_WRONLY) | O_BINARY, mode);
if (tmpfd == -1)
{
g_free (tmp_filename);