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 55cac186dc71fcc2f4628f9974b30850bb51eb5d..aca4fdd2a6615e642420db31db8b267903bda2af 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;