Add parens to ConvertToXSegs macro
authorAlvaro Herrera <[email protected]>
Wed, 24 Jun 2020 18:00:37 +0000 (14:00 -0400)
committerAlvaro Herrera <[email protected]>
Wed, 24 Jun 2020 18:00:37 +0000 (14:00 -0400)
The current definition is dangerous.  No bugs exist in our code at
present, but backpatch to 11 nonetheless where it was introduced.

Author: Álvaro Herrera <[email protected]>

src/backend/access/transam/xlog.c

index e285ae96c1e96980d517458f81ef0addc9614507..18b4d11bd03f1d1145c0b082dc1e86bc2bbe1bfa 100644 (file)
@@ -744,9 +744,12 @@ static ControlFileData *ControlFile = NULL;
  */
 #define UsableBytesInPage (XLOG_BLCKSZ - SizeOfXLogShortPHD)
 
-/* Convert min_wal_size_mb and max wal_size_mb to equivalent segment count */
+/*
+ * Convert min_wal_size_mb and max wal_size_mb to equivalent segment count.
+ * Rounds down.
+ */
 #define ConvertToXSegs(x, segsize) \
-   (x / ((segsize) / (1024 * 1024)))
+   ((x) / ((segsize) / (1024 * 1024)))
 
 /* The number of bytes in a WAL segment usable for WAL data. */
 static int UsableBytesInSegment;