[pacman-dev] [PATCH v2 1/1] contrib: Unify quoting in error messages
This fixes error messages to display the contents of variables rather than the variable name by replacing backticks with single quotes (m4 eats backticks). It also removes $"" localization from error messages to eliminate security holes. For instance, `rankmirrors nonexistent_file' will now display: 'nonexistent_file' does not exist. rather than: $1 does not exist. Signed-off-by: Aaron Lindsay <aaron@aclindsay.com> --- contrib/bacman.sh.in | 2 +- contrib/paclog-pkglist.sh.in | 2 +- contrib/rankmirrors.sh.in | 10 +++++----- contrib/updpkgsums.sh.in | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/contrib/bacman.sh.in b/contrib/bacman.sh.in index 5435e40..33e3920 100644 --- a/contrib/bacman.sh.in +++ b/contrib/bacman.sh.in @@ -124,7 +124,7 @@ fi if [[ ! -d $pkg_dir ]]; then error "package %s is found in pacman database," "${pkg_name}" - plain " but \`%s' is not a directory" "${pkg_dir}" + plain " but '%s' is not a directory" "${pkg_dir}" exit 1 fi diff --git a/contrib/paclog-pkglist.sh.in b/contrib/paclog-pkglist.sh.in index 9b3abad..b6f4ffe 100755 --- a/contrib/paclog-pkglist.sh.in +++ b/contrib/paclog-pkglist.sh.in @@ -43,7 +43,7 @@ if [[ $1 ]]; then version exit 0 elif [[ ! -e $logfile ]]; then - printf $"target not found: %s\n" "$1" + printf "target not found: '%s'\n" "$1" exit 1 fi fi diff --git a/contrib/rankmirrors.sh.in b/contrib/rankmirrors.sh.in index 875a143..5555edf 100644 --- a/contrib/rankmirrors.sh.in +++ b/contrib/rankmirrors.sh.in @@ -127,7 +127,7 @@ while [[ $1 ]]; do verbose) VERBOSE=1 ; shift ;; url) CHECKURL=1; [[ $2 ]] || err "Must specify url."; URL="$2"; shift 2;; repo) [[ $2 ]] || err "Must specify repo name."; TARGETREPO="$2"; shift 2;; - *) err "\`$1' is an invalid argument." + *) err "'$1' is an invalid argument." esac elif [[ ${1:0:1} = - ]]; then @@ -146,7 +146,7 @@ while [[ $1 ]]; do u) CHECKURL=1; [[ $2 ]] || err "Must specify url."; URL="$2"; snum=2;; r) [[ $2 ]] || err "Must specify repo name."; TARGETREPO="$2"; snum=2;; n) [[ $2 ]] || err "Must specify number." ; NUM="$2" ; snum=2;; - *) err "\`-$1' is an invald argument." ;; + *) err "'$1' is an invalid argument." ;; esac done shift $snum @@ -157,7 +157,7 @@ while [[ $1 ]]; do [[ $linearray ]] || err "File is empty." shift else - err "\`$1' does not exist." + err "'$1' does not exist." fi done @@ -169,7 +169,7 @@ done # Single url handling if [[ $CHECKURL ]]; then url="$(getfetchurl "$URL")" - [[ $url = fail ]] && err "url \`$URL' is malformed." + [[ $url = fail ]] && err "url '$URL' is malformed." [[ $VERBOSE ]] && echo "Testing $url..." time=$(gettime "$url") echo "$URL : $time" @@ -193,7 +193,7 @@ for line in "${linearray[@]}"; do server="${line#*= }" server="${server%%#*}" url="$(getfetchurl "$server")" - [[ $url = fail ]] && err "url \`$URL' is malformed." + [[ $url = fail ]] && err "url '$URL' is malformed." time=$(gettime "$url") timesarray+=("$time $server") diff --git a/contrib/updpkgsums.sh.in b/contrib/updpkgsums.sh.in index ffea96b..4d35357 100644 --- a/contrib/updpkgsums.sh.in +++ b/contrib/updpkgsums.sh.in @@ -67,7 +67,7 @@ fi # Check $PWD/ for permission to unlink the $buildfile and write a new one if [[ ! -w . ]]; then - printf $'==> ERROR: No write permission in `%s\'\n' "$PWD" + printf "==> ERROR: No write permission in '%s'\n" "$PWD" exit 1 fi -- 1.8.4
On Thu, Sep 05, 2013 at 01:54:41PM -0400, Aaron Lindsay wrote:
This fixes error messages to display the contents of variables rather than the variable name by replacing backticks with single quotes (m4 eats backticks). It also removes $"" localization from error messages to eliminate security holes.
For instance, `rankmirrors nonexistent_file' will now display: 'nonexistent_file' does not exist. rather than: $1 does not exist.
Signed-off-by: Aaron Lindsay <aaron@aclindsay.com> --- contrib/bacman.sh.in | 2 +- contrib/paclog-pkglist.sh.in | 2 +- contrib/rankmirrors.sh.in | 10 +++++----- contrib/updpkgsums.sh.in | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-)
diff --git a/contrib/bacman.sh.in b/contrib/bacman.sh.in index 5435e40..33e3920 100644 --- a/contrib/bacman.sh.in +++ b/contrib/bacman.sh.in @@ -124,7 +124,7 @@ fi
if [[ ! -d $pkg_dir ]]; then error "package %s is found in pacman database," "${pkg_name}" - plain " but \`%s' is not a directory" "${pkg_dir}" + plain " but '%s' is not a directory" "${pkg_dir}" exit 1 fi
diff --git a/contrib/paclog-pkglist.sh.in b/contrib/paclog-pkglist.sh.in index 9b3abad..b6f4ffe 100755 --- a/contrib/paclog-pkglist.sh.in +++ b/contrib/paclog-pkglist.sh.in @@ -43,7 +43,7 @@ if [[ $1 ]]; then version exit 0 elif [[ ! -e $logfile ]]; then - printf $"target not found: %s\n" "$1" + printf "target not found: '%s'\n" "$1"
I suppose this was intentional because we're reusing pacman's translations (which we, for some reason, trust). Notice the TEXTDOMAIN and TEXTDOMAINDIR vars at the top of the script....
exit 1 fi fi diff --git a/contrib/rankmirrors.sh.in b/contrib/rankmirrors.sh.in index 875a143..5555edf 100644 --- a/contrib/rankmirrors.sh.in +++ b/contrib/rankmirrors.sh.in @@ -127,7 +127,7 @@ while [[ $1 ]]; do verbose) VERBOSE=1 ; shift ;; url) CHECKURL=1; [[ $2 ]] || err "Must specify url."; URL="$2"; shift 2;; repo) [[ $2 ]] || err "Must specify repo name."; TARGETREPO="$2"; shift 2;; - *) err "\`$1' is an invalid argument." + *) err "'$1' is an invalid argument." esac elif [[ ${1:0:1} = - ]]; then
@@ -146,7 +146,7 @@ while [[ $1 ]]; do u) CHECKURL=1; [[ $2 ]] || err "Must specify url."; URL="$2"; snum=2;; r) [[ $2 ]] || err "Must specify repo name."; TARGETREPO="$2"; snum=2;; n) [[ $2 ]] || err "Must specify number." ; NUM="$2" ; snum=2;; - *) err "\`-$1' is an invald argument." ;; + *) err "'$1' is an invalid argument." ;; esac done shift $snum @@ -157,7 +157,7 @@ while [[ $1 ]]; do [[ $linearray ]] || err "File is empty." shift else - err "\`$1' does not exist." + err "'$1' does not exist." fi done
@@ -169,7 +169,7 @@ done # Single url handling if [[ $CHECKURL ]]; then url="$(getfetchurl "$URL")" - [[ $url = fail ]] && err "url \`$URL' is malformed." + [[ $url = fail ]] && err "url '$URL' is malformed." [[ $VERBOSE ]] && echo "Testing $url..." time=$(gettime "$url") echo "$URL : $time" @@ -193,7 +193,7 @@ for line in "${linearray[@]}"; do server="${line#*= }" server="${server%%#*}" url="$(getfetchurl "$server")" - [[ $url = fail ]] && err "url \`$URL' is malformed." + [[ $url = fail ]] && err "url '$URL' is malformed." time=$(gettime "$url") timesarray+=("$time $server")
diff --git a/contrib/updpkgsums.sh.in b/contrib/updpkgsums.sh.in index ffea96b..4d35357 100644 --- a/contrib/updpkgsums.sh.in +++ b/contrib/updpkgsums.sh.in @@ -67,7 +67,7 @@ fi
# Check $PWD/ for permission to unlink the $buildfile and write a new one if [[ ! -w . ]]; then - printf $'==> ERROR: No write permission in `%s\'\n' "$PWD" + printf "==> ERROR: No write permission in '%s'\n" "$PWD" exit 1 fi
-- 1.8.4
participants (2)
-
Aaron Lindsay
-
Dave Reisner