From f463198cbf8b921915457c9be4582ed61109ed79 Mon Sep 17 00:00:00 2001 From: owsla Date: Sat, 26 Jan 2008 19:15:00 +0000 Subject: When unreadable dirs are updated, remove them from the list of dirs whose permissions need to be reset later since we do it during the backup. git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@876 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109 --- rdiff-backup/CHANGELOG | 4 ++++ rdiff-backup/rdiff_backup/backup.py | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/rdiff-backup/CHANGELOG b/rdiff-backup/CHANGELOG index 8df3b18..baf131b 100644 --- a/rdiff-backup/CHANGELOG +++ b/rdiff-backup/CHANGELOG @@ -1,6 +1,10 @@ New in v1.1.16 (????/??/??) --------------------------- +Correctly handle updates to nested directories with unreadable permissions. +Thanks to John Goerzen for the bug report. Closes Debian bugs #389134 and +#411849. (Andrew Ferguson) + Manpage improvements from Justin Pryzby. Improve the handling of directories with many small files when backing-up diff --git a/rdiff-backup/rdiff_backup/backup.py b/rdiff-backup/rdiff_backup/backup.py index 0cdad16..eab6c75 100644 --- a/rdiff-backup/rdiff_backup/backup.py +++ b/rdiff-backup/rdiff_backup/backup.py @@ -651,6 +651,15 @@ class PatchITRB(rorpiter.ITRBranch): """Finish processing directory""" if self.dir_update: assert self.base_rp.isdir() + + if (Globals.process_uid != 0 and + self.dir_update.getperms() % 01000 < 0700): + # Directory's permissions were adjusted at the start to + # make it readable -- remove it from the list since they + # will be reset by the copy_attribs() call + self.CCPP.dir_perms_list.remove((self.base_rp, + self.dir_update.getperms())) + rpath.copy_attribs(self.dir_update, self.base_rp) elif self.dir_replacement: self.base_rp.rmdir() -- cgit v1.2.1