]> granicus.if.org Git - postgresql/commitdiff
Be more paranoid about quoting in pg_upgrade's test script.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 21 Jul 2018 16:05:25 +0000 (12:05 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 21 Jul 2018 16:05:25 +0000 (12:05 -0400)
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

src/bin/pg_upgrade/test.sh

index 775dd5729ddd718ef9f3b1c4113d84de5560cfd3..e898a88a1cd454ba5459581a07f25848ab7b3d70 100644 (file)
@@ -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 ;;