Add parens to ConvertToXSegs macro
authorAlvaro Herrera
Wed, 24 Jun 2020 18:00:37 +0000 (14:00 -0400)
committerAlvaro Herrera
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 

src/backend/access/transam/xlog.c

index a1256a103b618eb6e2987b7bc9cfcc5edc044390..34ede80c44f4db98e82a1961256904c5db73f379 100644 (file)
@@ -760,9 +760,12 @@ static ControlFileData *ControlFile = NULL;
  */
 #define UsableBytesInPage (XLOG_BLCKSZ - SizeOfXLogShortPHD)
 
-/* Convert values of GUCs measured in megabytes to equiv. segment count */
+/*
+ * Convert values of GUCs measured in megabytes to equiv. 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;