diff --git a/src/bin/pg_dump/pg_restore.c b/src/bin/pg_dump/pg_restore.c index f6c835be0d1..98f4be64efa 100644 --- a/src/bin/pg_dump/pg_restore.c +++ b/src/bin/pg_dump/pg_restore.c @@ -313,6 +313,22 @@ main(int argc, char **argv) opts->useDB = 1; } + if (opts->number_of_jobs <= 0) + { + fprintf(stderr, _("%s: invalid number of parallel jobs\n"), progname); + exit(1); + } + + /* See comments in pg_dump.c */ +#ifdef WIN32 + if (opts->number_of_jobs > MAXIMUM_WAIT_OBJECTS) + { + fprintf(stderr, _("%s: maximum number of parallel jobs is %d\n"), + progname, MAXIMUM_WAIT_OBJECTS); + exit(1); + } +#endif + /* Can't do single-txn mode with multiple connections */ if (opts->single_txn && opts->number_of_jobs > 1) {