summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Delvare <jdelvare@suse.de>2015-02-04 17:28:54 +0100
committerJean Delvare <jdelvare@suse.de>2015-02-04 17:28:54 +0100
commit282e06f6bfd8b8418e9eb8a08f15d224e6203908 (patch)
tree11da4886bfaa69e40a4f8d9338835be23b38fabc
parentfbaa5d8128e3267dc220f9bed47bbbb953e4ea0e (diff)
downloadquilt-282e06f6bfd8b8418e9eb8a08f15d224e6203908.tar.gz
setup: Fix a corner case in create_symlink
When a link's target is the directory it lives in, create_symlink would erroneously link to "..". Fix the code to properly link to "." instead. This fixes openSUSE bug #916007: https://bugzilla.opensuse.org/show_bug.cgi?id=916007 Credits to Robert Milasan for spotting the bug.
-rw-r--r--quilt/setup.in2
1 files changed, 1 insertions, 1 deletions
diff --git a/quilt/setup.in b/quilt/setup.in
index 4fed444..abaa695 100644
--- a/quilt/setup.in
+++ b/quilt/setup.in
@@ -97,7 +97,7 @@ create_symlink()
do
set -- "${1#*/}" "${2#*/}"
done
- up=$(echo "${2%/*}" | sed -re 's:[^/]+:..:g')
+ up=$(echo "$2" | sed -r -e 's:(^|/)[^/]*$::' -e 's:[^/]+:..:g')
set -- "${up:+$up/}$1"
set -- "${1%/}"
ln -s "${1:-.}" "$link"