[tracker] tracker-writeback: Preserve file permissions
- From: Philip Van Hoof <pvanhoof src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker] tracker-writeback: Preserve file permissions
- Date: Wed, 9 Nov 2011 12:15:08 +0000 (UTC)
commit 16fe51de1e93016a122ab089b0e0201c18de7ebc
Author: Philip Van Hoof <philip codeminded be>
Date: Wed Nov 9 12:56:59 2011 +0100
tracker-writeback: Preserve file permissions
Fixes NB#289953.
src/tracker-writeback/tracker-writeback-file.c | 16 ++++++++++++----
1 files changed, 12 insertions(+), 4 deletions(-)
---
diff --git a/src/tracker-writeback/tracker-writeback-file.c b/src/tracker-writeback/tracker-writeback-file.c
index 652169b..f00d668 100644
--- a/src/tracker-writeback/tracker-writeback-file.c
+++ b/src/tracker-writeback/tracker-writeback-file.c
@@ -239,11 +239,10 @@ tracker_writeback_file_update_metadata (TrackerWriteback *writeback,
/* Copy to a temporary file so we can perform an atomic write on move */
tmp_file = create_temporary_file (file, file_info, &n_error);
- g_object_unref (file_info);
-
if (!tmp_file) {
g_object_unref (file);
g_propagate_error (error, n_error);
+ g_object_unref (file_info);
return FALSE;
}
@@ -258,12 +257,21 @@ tracker_writeback_file_update_metadata (TrackerWriteback *writeback,
/* Delete the temporary file and preserve original */
g_file_delete (tmp_file, NULL, NULL);
} else {
+ GError *m_error = NULL;
/* Move back the modified file to the original location */
g_file_move (tmp_file, file,
- G_FILE_COPY_OVERWRITE,
- NULL, NULL, NULL, NULL);
+ G_FILE_COPY_OVERWRITE,
+ NULL, NULL, NULL, NULL);
+ /* Set file attributes on tmp_file using file_info of original file */
+ g_file_set_attributes_from_info (tmp_file, file_info, 0, NULL, &m_error);
+ if (m_error) {
+ g_warning ("Can't restore permissions of original file for %s",
+ row[0]);
+ g_error_free (m_error);
+ }
}
+ g_object_unref (file_info);
g_object_unref (tmp_file);
g_object_unref (file);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]