summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@archlinux.org>2020-05-26 05:52:16 +0200
committerAllan McRae <allan@archlinux.org>2020-06-11 02:50:52 +0200
commit817f9fb715b4e90d28bc141dfccfc530b9e951dc (patch)
treecb3ac2909830ce29b5ef214488d1c0417001360f
parent3bd88821bbfc8066a63ddfc9959e78984bc17750 (diff)
downloadpacman-817f9fb715b4e90d28bc141dfccfc530b9e951dc.tar.gz
pacman-817f9fb715b4e90d28bc141dfccfc530b9e951dc.tar.xz
makepkg: guard against undefined git pinned sources
If something like source=(..."#commit=") is used, e.g. due to failed variable expansion, we try to check out an empty refspec as nothing at all, and end up just running "git checkout". This happens because we fail at variable expansion too -- so let's quote our variables properly and make sure git sees this as an empty refspec, so it can error out. Also make sure it is interpreted as a ref instead of a path. Signed-off-by: Eli Schwartz <eschwartz@archlinux.org> Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--scripts/libmakepkg/source/git.sh.in2
1 files changed, 1 insertions, 1 deletions
diff --git a/scripts/libmakepkg/source/git.sh.in b/scripts/libmakepkg/source/git.sh.in
index aee944f7..a29be3c5 100644
--- a/scripts/libmakepkg/source/git.sh.in
+++ b/scripts/libmakepkg/source/git.sh.in
@@ -125,7 +125,7 @@ extract_git() {
fi
if [[ $ref != "origin/HEAD" ]] || (( updating )) ; then
- if ! git checkout --force --no-track -B makepkg $ref; then
+ if ! git checkout --force --no-track -B makepkg "$ref" --; then
error "$(gettext "Failure while creating working copy of %s %s repo")" "${repo}" "git"
plain "$(gettext "Aborting...")"
exit 1