Content-Length: 278330 | pFad | http://github.com/postgrespro/postgres/commit/99f50dd720de59872bd842be3ec8eecea2be4b92

8E initdb -S should now have an explicit check that $PGDATA is valid. · postgrespro/postgres@99f50dd · GitHub
Skip to content

Commit 99f50dd

Browse files
committed
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.
1 parent 70a4519 commit 99f50dd

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

src/bin/initdb/initdb.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3726,10 +3726,19 @@ main(int argc, char *argv[])
37263726
exit(1);
37273727
}
37283728

3729-
/* If we only need to fsync, just to it and exit */
3729+
/* If we only need to fsync, just do it and exit */
37303730
if (sync_only)
37313731
{
37323732
setup_pgdata();
3733+
3734+
/* must check that directory is readable */
3735+
if (pg_check_dir(pg_data) <= 0)
3736+
{
3737+
fprintf(stderr, _("%s: could not access directory \"%s\": %s\n"),
3738+
progname, pg_data, strerror(errno));
3739+
exit_nicely();
3740+
}
3741+
37333742
fsync_pgdata();
37343743
return 0;
37353744
}

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/postgrespro/postgres/commit/99f50dd720de59872bd842be3ec8eecea2be4b92

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy