initdb -S should now have an explicit check that $PGDATA is valid.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 29 May 2015 21:02:58 +0000 (17:02 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 29 May 2015 21:02:58 +0000 (17:02 -0400)
commitc2b68b1f7d6de9e749d037a09c5875742e8e6250
treee07f276ae02537108423cd779ba5d09d765ee280
parent35dd1b51f2ea7a41621b7ab04be605ecfd7cfaf7
initdb -S should now have an explicit check that $PGDATA is valid.

The fsync code from the backend essentially assumes that somebody's already
validated PGDATA, at least to the extent of it being a readable directory.
That's safe enough for initdb's normal code path too, but "initdb -S"
doesn't have any other processing at all that touches the target directory.
To have reasonable error-case behavior, add a pg_check_dir call.
Per gripe from Peter E.
src/bin/initdb/initdb.c