Merge branch 'wip/oholy/copy-permissions' into 'master'

CVE-2019-12450: gfile: Limit access to files when copying

See merge request GNOME/glib!876
This commit is contained in:
Philip Withnall 2019-05-31 09:09:30 +00:00
commit 947355c101

View File

@ -3284,12 +3284,12 @@ file_copy_fallback (GFile *source,
out = (GOutputStream*)_g_local_file_output_stream_replace (_g_local_file_get_filename (G_LOCAL_FILE (destination)), out = (GOutputStream*)_g_local_file_output_stream_replace (_g_local_file_get_filename (G_LOCAL_FILE (destination)),
FALSE, NULL, FALSE, NULL,
flags & G_FILE_COPY_BACKUP, flags & G_FILE_COPY_BACKUP,
G_FILE_CREATE_REPLACE_DESTINATION, G_FILE_CREATE_REPLACE_DESTINATION |
info, G_FILE_CREATE_PRIVATE, info,
cancellable, error); cancellable, error);
else else
out = (GOutputStream*)_g_local_file_output_stream_create (_g_local_file_get_filename (G_LOCAL_FILE (destination)), out = (GOutputStream*)_g_local_file_output_stream_create (_g_local_file_get_filename (G_LOCAL_FILE (destination)),
FALSE, 0, info, FALSE, G_FILE_CREATE_PRIVATE, info,
cancellable, error); cancellable, error);
} }
else if (flags & G_FILE_COPY_OVERWRITE) else if (flags & G_FILE_COPY_OVERWRITE)
@ -3297,12 +3297,13 @@ file_copy_fallback (GFile *source,
out = (GOutputStream *)g_file_replace (destination, out = (GOutputStream *)g_file_replace (destination,
NULL, NULL,
flags & G_FILE_COPY_BACKUP, flags & G_FILE_COPY_BACKUP,
G_FILE_CREATE_REPLACE_DESTINATION, G_FILE_CREATE_REPLACE_DESTINATION |
G_FILE_CREATE_PRIVATE,
cancellable, error); cancellable, error);
} }
else else
{ {
out = (GOutputStream *)g_file_create (destination, 0, cancellable, error); out = (GOutputStream *)g_file_create (destination, G_FILE_CREATE_PRIVATE, cancellable, error);
} }
if (!out) if (!out)