[pacman-dev] [PATCH] makepkg: perform sanity checks on variables in package functions
Check the over-ridden entries for provides, backup and optdepends for illegal entries. Fixes FS#16004. Signed-off-by: Allan McRae <allan@archlinux.org> --- scripts/makepkg.sh.in | 14 ++++++++++---- 1 files changed, 10 insertions(+), 4 deletions(-) diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 4e321d1..d5ccdbf 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -27,7 +27,7 @@ # makepkg uses quite a few external programs during its execution. You # need to have at least the following installed for makepkg to function: -# bsdtar (libarchive), bzip2, coreutils, fakeroot, file, find (findutils), +# awk, bsdtar (libarchive), bzip2, coreutils, fakeroot, file, find (findutils), # gettext, grep, gzip, openssl, sed, tput (ncurses), xz # gettext initialization @@ -1222,21 +1222,27 @@ check_sanity() { fi fi - for i in ${provides[@]}; do + local provides_list + eval $(awk '/^[[:space:]]*provides=/,/)/' PKGBUILD | sed "s/provides=/provides_list+=/") + for i in ${provides_list[@]}; do if [[ $i != ${i//</} || $i != ${i//>/} ]]; then error "$(gettext "Provides array cannot contain comparison (< or >) operators.")" return 1 fi done - for i in "${backup[@]}"; do + local backup_list + eval $(awk '/^[[:space:]]*backup=/,/)/' PKGBUILD | sed "s/backup=/backup_list+=/") + for i in "${backup_list[@]}"; do if [[ ${i:0:1} = "/" ]]; then error "$(gettext "Backup entry should not contain leading slash : %s")" "$i" return 1 fi done - for i in "${optdepends[@]}"; do + local optdepends_list + eval $(awk '/^[[:space:]]*optdepends=/,/)/' PKGBUILD | sed "s/optdepends=/optdepends_list+=/") + for i in "${optdepends_list[@]}"; do local pkg=${i%%:*} if [[ ! $pkg =~ ^[[:alnum:]\>\<\=\.\+\_\-]+$ ]]; then error "$(gettext "Invalid syntax for optdepend : '%s'")" "$i" -- 1.7.3.3
Check the over-ridden entries for provides, backup and optdepends for illegal entries. Fixes FS#16004.
Please don't take this as an assertion of what is right or wrong. I'm just posing the question. Are these checks stepping on namcap's domain?
On 07/12/10 21:29, jeff@kcaccess.com wrote:
Check the over-ridden entries for provides, backup and optdepends for illegal entries. Fixes FS#16004.
Please don't take this as an assertion of what is right or wrong. I'm just posing the question. Are these checks stepping on namcap's domain?
I'm going for a "not really" there... Most of these are basic checks to avoid failures later in the package building process. Others are important for future pacman development (e.g. forcing syntax of optdepends would allow us to parse them in pacman). Although some are things that namcap could check (e.g. checking leading / in backup entries). But the overhead for those is so minimal that I think that having them in makepkg is fine. Allan
participants (2)
-
Allan McRae
-
jeff@kcaccess.com