Commit 369342cf authored by Robert Haas's avatar Robert Haas

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.
parent 158e3bc8
...@@ -2215,7 +2215,7 @@ static struct config_int ConfigureNamesInt[] = ...@@ -2215,7 +2215,7 @@ static struct config_int ConfigureNamesInt[] =
GUC_UNIT_XBLOCKS GUC_UNIT_XBLOCKS
}, },
&XLOGbuffers, &XLOGbuffers,
-1, -1, INT_MAX, -1, -1, (INT_MAX / XLOG_BLCKSZ),
check_wal_buffers, NULL, NULL check_wal_buffers, NULL, NULL
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment