aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Paquier <michael@paquier.xyz>2019-08-27 09:12:14 +0900
committerMichael Paquier <michael@paquier.xyz>2019-08-27 09:12:14 +0900
commit4ed3bda49d5ed4616bfca80dcb3b409be9720aff (patch)
tree7637d0c867cee0e01fd012c30fe3197f7e628893 /src
parent33066b0142893ead9b1bd9709552a9f173ffddb3 (diff)
downloadpostgresql-4ed3bda49d5ed4616bfca80dcb3b409be9720aff.tar.gz
postgresql-4ed3bda49d5ed4616bfca80dcb3b409be9720aff.zip
Fix failure of --jobs with vacuumdb on Windows
FD_SETSIZE needs to be declared before winsock2.h, or it is possible to run into buffer overflow issues when using --jobs. This is similar to pgbench's solution done in a23c641. This has been introduced by 71d84ef, and older versions have been using the default value of FD_SETSIZE, defined at 64. While on it, add a missing newline to the previously-added error message. Per buildfarm member jacana, but this impacts all Windows animals running the TAP tests. I have reproduced the failure locally to check the patch. Author: Michael Paquier Reviewed-by: Andrew Dunstan Discussion: https://postgr.es/m/20190826054000.GE7005@paquier.xyz Backpatch-through: 9.5
Diffstat (limited to 'src')
-rw-r--r--src/bin/scripts/vacuumdb.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/bin/scripts/vacuumdb.c b/src/bin/scripts/vacuumdb.c
index 4aab4434882..068ae7a189e 100644
--- a/src/bin/scripts/vacuumdb.c
+++ b/src/bin/scripts/vacuumdb.c
@@ -10,6 +10,10 @@
*-------------------------------------------------------------------------
*/
+#ifdef WIN32
+#define FD_SETSIZE 1024 /* must set before winsock2.h is included */
+#endif
+
#include "postgres_fe.h"
#ifdef HAVE_SYS_SELECT_H
@@ -439,7 +443,7 @@ vacuum_one_database(const char *dbname, vacuumingOptions *vacopts,
if (PQsocket(conn) >= FD_SETSIZE)
{
fprintf(stderr,
- _("%s: too many jobs for this platform -- try %d"),
+ _("%s: too many jobs for this platform -- try %d\n"),
progname, i);
exit(1);
}