diff options
author | Eli Schwartz <eschwartz@archlinux.org> | 2020-05-26 05:52:16 +0200 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2020-06-11 02:50:52 +0200 |
commit | 817f9fb715b4e90d28bc141dfccfc530b9e951dc (patch) | |
tree | cb3ac2909830ce29b5ef214488d1c0417001360f | |
parent | 3bd88821bbfc8066a63ddfc9959e78984bc17750 (diff) | |
download | pacman-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.in | 2 |
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 |