diff options
author | owsla <owsla@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2008-01-26 19:15:00 +0000 |
---|---|---|
committer | owsla <owsla@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2008-01-26 19:15:00 +0000 |
commit | f463198cbf8b921915457c9be4582ed61109ed79 (patch) | |
tree | 98fcf16b4d238767421face688840d23b65e3c09 | |
parent | 2c0c084566adfbf6a02de990b31d609e40294120 (diff) | |
download | rdiff-backup-f463198cbf8b921915457c9be4582ed61109ed79.tar.gz |
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
-rw-r--r-- | rdiff-backup/CHANGELOG | 4 | ||||
-rw-r--r-- | rdiff-backup/rdiff_backup/backup.py | 9 |
2 files changed, 13 insertions, 0 deletions
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() |