diff options
author | Robert Haas <rhaas@postgresql.org> | 2015-08-04 12:58:54 -0400 |
---|---|---|
committer | Robert Haas <rhaas@postgresql.org> | 2015-08-04 13:06:03 -0400 |
commit | 4e51ea8fd26f743d92cd35905eac334aafe2b1cc (patch) | |
tree | 0a57cbc159bf9e32ac6b40d0a268a2ccab791ce8 /src | |
parent | 1e1bb203bcfdb90ef81e97169812a5f5f942b124 (diff) | |
download | postgresql-4e51ea8fd26f743d92cd35905eac334aafe2b1cc.tar.gz postgresql-4e51ea8fd26f743d92cd35905eac334aafe2b1cc.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')
-rw-r--r-- | src/backend/utils/misc/guc.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index a3e86223db7..00a635fff28 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -1964,7 +1964,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 }, |