diff options
author | Jean Delvare <jdelvare@suse.de> | 2015-02-04 17:28:54 +0100 |
---|---|---|
committer | Jean Delvare <jdelvare@suse.de> | 2015-02-04 17:28:54 +0100 |
commit | 282e06f6bfd8b8418e9eb8a08f15d224e6203908 (patch) | |
tree | 11da4886bfaa69e40a4f8d9338835be23b38fabc | |
parent | fbaa5d8128e3267dc220f9bed47bbbb953e4ea0e (diff) | |
download | quilt-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.in | 2 |
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" |