--exclude-if-present and --exclude-other-filesystems causes crash with inaccessible other fs
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Duplicity |
Fix Released
|
Medium
|
Unassigned |
Bug Description
this is a forward of debian bug #685352, which lives over there: http://
the original submitter has a fuse filesystem mounted (=inaccessible to anybody else, incl. root)
and a symlink pointing to it, and wants to back stuff up as root - except the inaccessible stuff of course,
so he uses --exclude-
this works fine if only --exclude-
then the backup crashes because duplicity checks for the presence of the testfile in the symlinked
dir (=inaccessible), and doesn't properly deal with the error code (line 504 in path.py covers only enodir, enoent, but not eaccess).
to reproduce:
mkdir testdir && cd testdir
touch bla
ln -s /root # or any other dir that has no x perms for you, and is on a different fs
duplicity --exclude-
regards
az
Related branches
Changed in duplicity: | |
status: | New → Fix Committed |
importance: | Undecided → Medium |
milestone: | none → 0.6.20 |
Changed in duplicity: | |
status: | Fix Committed → Fix Released |
i've tracked down the root cause and have a fix for it:
if --exclude- if-present is used, then the path to check is run through path.append which creates a new
path object which in turn uses setdata which in turn follows links. the rest of path.py is careful not
to follow any symlinks, but the constructor isn't.