aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2015-08-04 12:58:54 -0400
committerRobert Haas <rhaas@postgresql.org>2015-08-04 12:58:54 -0400
commit369342cf70972a81e6be99b31593f31b73479d7f (patch)
treee922a4e24912550a38ba5c6a19bc8f507d5772b4 /src/backend/utils
parent158e3bc8e2507244b0d1e87ee334f39b7400098a (diff)
downloadpostgresql-369342cf70972a81e6be99b31593f31b73479d7f.tar.gz
postgresql-369342cf70972a81e6be99b31593f31b73479d7f.zip
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.
Diffstat (limited to 'src/backend/utils')
-rw-r--r--src/backend/utils/misc/guc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c
index 1b7b914624e..b3dac51b779 100644
--- a/src/backend/utils/misc/guc.c
+++ b/src/backend/utils/misc/guc.c
@@ -2215,7 +2215,7 @@ static struct config_int ConfigureNamesInt[] =
GUC_UNIT_XBLOCKS
},
&XLOGbuffers,
- -1, -1, INT_MAX,
+ -1, -1, (INT_MAX / XLOG_BLCKSZ),
check_wal_buffers, NULL, NULL
},