From: Tom Lane Date: Sat, 21 Jul 2018 16:05:25 +0000 (-0400) Subject: Be more paranoid about quoting in pg_upgrade's test script. X-Git-Tag: REL_12_BETA1~1840 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0c0908d926cc65c5a10f9507580be3aacce08cf1;p=postgresql Be more paranoid about quoting in pg_upgrade's test script. Double-quote $PGDATA in "find" commands introduced by commit da9b580d8, in case that path contains spaces or other special characters. Adjust a few other places so that quoting is done more consistently. None of the others are actual bugs AFAICS, but it's confusing to readers if the same thing is done differently in different places. Noted by Tels. Discussion: https://postgr.es/m/c96303c04c360bbedaa04f90f515745b.squirrel@sm.webmail.pair.com --- diff --git a/src/bin/pg_upgrade/test.sh b/src/bin/pg_upgrade/test.sh index 775dd5729d..e898a88a1c 100644 --- a/src/bin/pg_upgrade/test.sh +++ b/src/bin/pg_upgrade/test.sh @@ -65,7 +65,7 @@ case $testhost in ;; esac -POSTMASTER_OPTS="-F -c listen_addresses=$LISTEN_ADDRESSES -k \"$PGHOST\"" +POSTMASTER_OPTS="-F -c listen_addresses=\"$LISTEN_ADDRESSES\" -k \"$PGHOST\"" export PGHOST # don't rely on $PWD here, as old shells don't set it @@ -107,8 +107,8 @@ newsrc=`cd ../../.. && pwd` PATH=$bindir:$PATH export PATH -BASE_PGDATA=$temp_root/data -PGDATA="$BASE_PGDATA.old" +BASE_PGDATA="$temp_root/data" +PGDATA="${BASE_PGDATA}.old" export PGDATA rm -rf "$BASE_PGDATA" "$PGDATA" @@ -224,17 +224,17 @@ if [ -n "$pg_dumpall1_status" ]; then exit 1 fi -PGDATA=$BASE_PGDATA +PGDATA="$BASE_PGDATA" standard_initdb 'initdb' -pg_upgrade $PG_UPGRADE_OPTS -d "${PGDATA}.old" -D "${PGDATA}" -b "$oldbindir" -B "$bindir" -p "$PGPORT" -P "$PGPORT" +pg_upgrade $PG_UPGRADE_OPTS -d "${PGDATA}.old" -D "$PGDATA" -b "$oldbindir" -B "$bindir" -p "$PGPORT" -P "$PGPORT" # make sure all directories and files have group permissions, on Unix hosts # Windows hosts don't support Unix-y permissions. case $testhost in MINGW*) ;; - *) if [ `find ${PGDATA} -type f ! -perm 640 | wc -l` -ne 0 ]; then + *) if [ `find "$PGDATA" -type f ! -perm 640 | wc -l` -ne 0 ]; then echo "files in PGDATA with permission != 640"; exit 1; fi ;; @@ -242,7 +242,7 @@ esac case $testhost in MINGW*) ;; - *) if [ `find ${PGDATA} -type d ! -perm 750 | wc -l` -ne 0 ]; then + *) if [ `find "$PGDATA" -type d ! -perm 750 | wc -l` -ne 0 ]; then echo "directories in PGDATA with permission != 750"; exit 1; fi ;;