[pacman-dev] [PATCH 1/3] makepkg: proper quoting in [[ expression ]]

Dave Reisner d at falconindy.com
Wed Sep 28 13:54:15 EDT 2011


On Thu, Sep 29, 2011 at 12:58:50AM +0800, lolilolicon wrote:
> Always quote the righthand side of expression when the == or != operator
> is used, unless intended as a pattern.  Quoting bash(1):
> 
> When the == and != operators are used, the string to the right of the
> operator is considered a pattern.  Any part of the pattern may be quoted
> to force it to be matched as a string.
> 
> Signed-off-by: lolilolicon <lolilolicon at gmail.com>

ack.

> ---
>  scripts/makepkg.sh.in |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index 86e74a6..cc06baa 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -414,7 +414,7 @@ download_file() {
>  	fi
> 
>  	# rename the temporary download file to the final destination
> -	if [[ $dlfile != $file ]]; then
> +	if [[ $dlfile != "$file" ]]; then
>  		mv -f "$SRCDEST/$dlfile" "$SRCDEST/$file"
>  	fi
>  }
> @@ -1509,7 +1509,7 @@ check_sanity() {
>  	eval $(awk '/^[[:space:]]*provides=/,/\)/' "$BUILDFILE" | \
>  		sed -e "s/provides=/provides_list+=/" -e "s/#.*//" -e 's/\\$//')
>  	for i in ${provides_list[@]}; do
> -		if [[ $i != ${i//</} || $i != ${i//>/} ]]; then
> +		if [[ $i == *['<>']* ]]; then
>  			error "$(gettext "%s array cannot contain comparison (< or >)
> operators.")" "provides"
>  			ret=1
>  		fi
> @@ -1767,7 +1767,7 @@ devel_update() {
>  	#  _foo=pkgver
>  	#
>  	if [[ -n $newpkgver ]]; then
> -		if [[ $newpkgver != $pkgver ]]; then
> +		if [[ $newpkgver != "$pkgver" ]]; then
>  			if [[ -f $BUILDFILE && -w $BUILDFILE ]]; then
>  				@SEDINPLACE@ "s/^pkgver=[^ ]*/pkgver=$newpkgver/" "$BUILDFILE"
>  				@SEDINPLACE@ "s/^pkgrel=[^ ]*/pkgrel=1/" "$BUILDFILE"
> -- 
> 1.7.6.4
> 


More information about the pacman-dev mailing list