From: Robert Haas Date: Tue, 4 Aug 2015 16:58:54 +0000 (-0400) Subject: Cap wal_buffers to avoid a server crash when it's set very large. X-Git-Tag: REL9_0_23~66 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b09446ed7eecc7cee6f7cc1dcc954c75c6c7570b;p=postgresql Cap wal_buffers to avoid a server crash when it's set very large. It must be possible to multiply wal_buffers by XLOG_BLCKSZ without overflowing int, or calculations in StartupXLOG will go badly wrong and crash the server. Avoid that by imposing a maximum value on wal_buffers. This will be just under 2GB, assuming the usual value for XLOG_BLCKSZ. Josh Berkus, per an analysis by Andrew Gierth. --- diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 203f202663..597ac8885e 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -1722,7 +1722,7 @@ static struct config_int ConfigureNamesInt[] = GUC_UNIT_XBLOCKS }, &XLOGbuffers, - 8, 4, INT_MAX, NULL, NULL + 8, 4, (INT_MAX / XLOG_BLCKSZ), NULL, NULL }, {