From c6984b98277071bd0e2830adaac7e5925ed4130c Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Wed, 28 Jun 2017 23:32:12 +0200 Subject: properly escape eval expressions --- bin/build-packages | 4 ++-- bin/common-functions | 8 ++++---- bin/get-package-updates | 12 ++++++------ conf/default.conf | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/bin/build-packages b/bin/build-packages index b218b91..6ede573 100755 --- a/bin/build-packages +++ b/bin/build-packages @@ -129,7 +129,7 @@ while [ ${count} -ne 0 ]; do # Update git repositories (official packages, community packages and the repository of package customizations). for repo_name in ${repo_names}; do - eval repo_path='$repo_paths__'"${repo_name}" + eval repo_path='"${repo_paths__'"${repo_name}"'}"' git -C "${repo_path}" fetch done @@ -149,7 +149,7 @@ while [ ${count} -ne 0 ]; do tmp_dir="$(mktemp -d "${work_dir}/tmp.XXXXXX")" if [ -n "${PKGBUILD}" ]; then - eval git -C "$(printf '$repo_paths__%s' "${git_repo}")/${PKGBUILD%/*}" archive "${git_revision}" | \ + eval "git -C \"$(printf '${repo_paths__%s}' "${git_repo}")/${PKGBUILD%/*}\" archive '${git_revision}'" | \ tar -x -C "${tmp_dir}" fi if [ -n "${PKGBUILD_mod}" ]; then diff --git a/bin/common-functions b/bin/common-functions index 442f5b2..edec2fe 100755 --- a/bin/common-functions +++ b/bin/common-functions @@ -19,7 +19,7 @@ find_pkgbuilds() { local mod_git_revision="$5" PKGBUILD="$( - eval git -C "$(printf '$repo_paths__%s' "${git_repository}")" archive "${git_revision}" -- "${package}/repos/" 2> /dev/null | \ + eval git -C "$(printf '"${repo_paths__%s}"' "${git_repository}")" 'archive "${git_revision}" -- "${package}/repos/"' 2> /dev/null | \ tar -t 2> /dev/null | \ grep "^$(str_to_regex "${package}/repos/${repository}")"'-.*/PKGBUILD$' | \ grep -v -- '-i686/PKGBUILD$' | \ @@ -54,7 +54,7 @@ find_repository_with_commit() { local repository for repository in ${repo_names}; do - if [ "$(eval git -C "$(printf '$repo_paths__%s' "${repository}")" cat-file -t "$1" 2> /dev/null)" = "commit" ]; then + if [ "$(eval git -C "$(printf '"${repo_paths__%s}"' "${repository}")" cat-file -t '"$1"' 2> /dev/null)" = "commit" ]; then echo "${repository}" return 0 fi @@ -77,7 +77,7 @@ find_git_repository_to_package_repository() { fi if [ -n "$( ( - eval ls "$(printf '$repo_paths__%s' "${repository}")/"*"/repos" | \ + eval ls "$(printf '"${repo_paths__%s}"' "${repository}")/"*"/repos" | \ grep -v ':$' | \ sed 's|-[^-]\+$||' | \ sort -u @@ -339,7 +339,7 @@ make_source_info() { if [ -n "${PKGBUILD}" ]; then content="$( - eval git -C "$(printf '$repo_paths__%s' "${git_repo}")" archive "${git_revision}" -- "${PKGBUILD}" | \ + eval git -C "$(printf '"${repo_paths__%s}"' "${git_repo}")" 'archive "${git_revision}" -- "${PKGBUILD}"' | \ tar -Ox )" else diff --git a/bin/get-package-updates b/bin/get-package-updates index 77819e6..e096eff 100755 --- a/bin/get-package-updates +++ b/bin/get-package-updates @@ -88,7 +88,7 @@ delete_package() { # Update git repositories (official packages, community packages and the repository of package customizations). for repo in ${repo_names}; do - eval repo_path='$repo_paths__'"${repo}" + eval repo_path='"${repo_paths__'"${repo}"'}"' # TODO: # this is somewhat redundant and slow -- improve it! git -C "${repo_path}" checkout -f master @@ -106,7 +106,7 @@ for repo in ${repo_names}; do cat "${work_dir}/${repo}.revision" 2> /dev/null || \ echo NONE )'" - eval repo_path='$repo_paths__'"${repo}" + eval repo_path='"${repo_paths__'"${repo}"'}"' eval "new_repo_revisions__${repo}='$( git -C "${repo_path}" rev-parse HEAD | \ tee "${work_dir}/${repo}.revision.new" @@ -137,9 +137,9 @@ cp \ "${work_dir}/deletion-list.new" for repo in ${repo_names}; do - eval repo_path='$repo_paths__'"${repo}" - eval old_repo_revision='$old_repo_revisions__'"${repo}" - eval new_repo_revision='$new_repo_revisions__'"${repo}" + eval repo_path='"${repo_paths__'"${repo}"'}"' + eval old_repo_revision='"${old_repo_revisions__'"${repo}"'}"' + eval new_repo_revision='"${new_repo_revisions__'"${repo}"'}"' ( # if old revision unknown, mimic "git diff"-output if [ "${old_repo_revision}" = "NONE" ]; then @@ -158,7 +158,7 @@ for repo in ${repo_names}; do sed 's|^\(.\t\)\([^/]\+\)/\([^/]\+\)/\(.\+\)$|\2 \1\3/repos/\2-x86_64/\4|' | \ while read -r pkg_repo rest; do eval "printf '%s %s\n'" \ - "$(printf '"$new_repo_revisions__%s"' "$(find_git_repository_to_package_repository "${pkg_repo}")")" \ + "$(printf '"${new_repo_revisions__%s}"' "$(find_git_repository_to_package_repository "${pkg_repo}")")" \ "'${rest}'" done else diff --git a/conf/default.conf b/conf/default.conf index f27823c..7554e33 100755 --- a/conf/default.conf +++ b/conf/default.conf @@ -62,7 +62,7 @@ mkdir -p "${work_dir}/build-list.loops" for repo in ${repo_names}; do - eval repo_path='$repo_paths__'"${repo}" + eval repo_path='"${repo_paths__'"${repo}"'}"' mkdir -p "${repo_path%/*}" -- cgit v1.2.3-54-g00ecf