Stop urls containing & or ? from breaking get_downloadclient()
and get_downloadcmd().

Fixes FS#11076

Signed-off-by: Henning Garus <[EMAIL PROTECTED]>
---
 scripts/makepkg.sh.in |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 041b460..38364a6 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -256,7 +256,7 @@ in_array() {
 get_downloadclient() {
        # $1 = url with valid protocol prefix
        local url=$1
-       local proto=$(echo $netfile | sed 's|://.*||')
+       local proto=$(echo "$url" | sed 's|://.*||')
 
        # loop through DOWNLOAD_AGENTS variable looking for protocol
        local i
@@ -293,7 +293,8 @@ get_downloadcmd() {
        local file=$3
 
        if echo "$dlagent" | grep -q "%u" ; then
-               local dlcmd=$(echo "$dlagent" | sed "s|%o|$file.part|" | sed 
"s|%u|$netfile|")
+               #use awk because of possible & in $netfile (FS#11076)
+               local dlcmd=$(echo "$dlagent" | sed "s|%o|$file.part|" | awk -F 
"%u" -v nf="$netfile" '{ print $1 nf $2}')
        else
                local dlcmd="$dlagent $netfile"
        fi
@@ -443,7 +444,10 @@ download_sources() {
                msg2 "$(gettext "Downloading %s...")" "$file"
                # fix flyspray bug #3289
                local ret=0
+               #disable expansion of possible ? in $netfile (FS#11076)
+               set -f
                $(get_downloadcmd "$dlclient" "$netfile" "$file") || ret=$?
+               set +f
                if [ $ret -gt 0 ]; then
                        error "$(gettext "Failure while downloading %s")" 
"$file"
                        plain "$(gettext "Aborting...")"
-- 
1.5.6.4


_______________________________________________
pacman-dev mailing list
[email protected]
http://archlinux.org/mailman/listinfo/pacman-dev

Reply via email to