aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2006-03-11 07:21:04 +0000
committerMicah Anderson <micah@riseup.net>2006-03-11 07:21:04 +0000
commitdc8e99c6c42a6f6bed025132aee37f4a742f6d0d (patch)
treeb7d72a66dea12caacdf6d9868c77d15b234de16a
parentc8ebca79ad314975a4955bf42fe7705b0c20e9f3 (diff)
downloadbackupninja-dc8e99c6c42a6f6bed025132aee37f4a742f6d0d.tar.gz
backupninja-dc8e99c6c42a6f6bed025132aee37f4a742f6d0d.tar.bz2
If you include= or exclude= a directory that is actually a symlink
somewhere along the chain you will only backup the symlink, and not the data, this is fixed here in rdiff with this change
-rw-r--r--ChangeLog2
-rw-r--r--handlers/rdiff5
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index aec8d97..a6fb5e5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,8 @@ version 0.9.4 -- unreleased
mysql:
. Fixed improper use of $vuserhome (Debian: #351083)
. Fixed erroneous removal of tmpfile when it didn't exit
+ rdiff:
+ . Fixed improper include/exclude symlink dereference
lib changes
vserver:
. init_vservers: fixed Debian bug #351083 (improper readlink syntax)
diff --git a/handlers/rdiff b/handlers/rdiff
index 4871d4e..6cbe6fa 100644
--- a/handlers/rdiff
+++ b/handlers/rdiff
@@ -174,12 +174,14 @@ set -o noglob
# TODO: order the includes and excludes
# excludes
for i in $exclude; do
+ i=`readlink -f $i`
str="${i//__star__/*}"
execstr="${execstr}--exclude '$str' "
done
# includes
for i in $include; do
[ "$i" != "/" ] || fatal "Sorry, you cannot use 'include = /'"
+ i=`readlink -f $i`
str="${i//__star__/*}"
execstr="${execstr}--include '$str' "
done
@@ -188,7 +190,8 @@ done
if [ $usevserver = yes ]; then
for vserver in $vsnames; do
for vi in $vsinclude; do
- str="${vi//__star__/*}"
+ i=`readlink -f $VROOTDIR/$vserver$vi`
+ str="${i//__star__/*}"
execstr="${execstr}--include '$VROOTDIR/$vserver$str' "
done
done