summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorMohammad Alsaleh <msal@i2pmail.org>2012-08-12 02:24:57 +0200
committerDan McGee <dan@archlinux.org>2012-09-18 15:39:18 +0200
commitc926c39b0481ec3db931fff1f86db0c49d78976b (patch)
tree8d51d4543dee345857ca3ca9f0588f4e32a22839 /scripts
parent34b52c9a60e43d84a8ea3930a19f8cbfa5815931 (diff)
downloadpacman-c926c39b0481ec3db931fff1f86db0c49d78976b.tar.gz
pacman-c926c39b0481ec3db931fff1f86db0c49d78976b.tar.xz
makepkg: check if $dir is a local clone of the right git repo
Before this patch, makepkg does not check if $dir is a local clone of the right repo. For example, git fetch would be run even if $dir is not a local bare clone of a git repo in present in source(), but a subdir of a checked-out one. That means makepkg can potentially fetch from a completely unrelated remote and update completely unrelated dirs/files. This patch adds a check to make sure we are fetching from the right remote. Signed-off-by: Mohammad Alsaleh <msal@i2pmail.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/makepkg.sh.in8
1 files changed, 7 insertions, 1 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 6c0e821c..7ec523c8 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -404,8 +404,14 @@ download_git() {
exit 1
fi
elif (( ! HOLDVER )); then
- msg2 "$(gettext "Updating %s %s repo...")" "${repo}" "git"
cd_safe "$dir"
+ # Make sure we are fetching the right repo
+ if [[ "$url" != "$(git config --get remote.origin.url)" ]] ; then
+ error "$(gettext "%s is not a clone of %s")" "$dir" "$url"
+ plain "$(gettext "Aborting...")"
+ exit 1
+ fi
+ msg2 "$(gettext "Updating %s %s repo...")" "${repo}" "git"
if ! git fetch --all -p; then
# only warn on failure to allow offline builds
warning "$(gettext "Failure while updating %s %s repo")" "${repo}" "git"