summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
authorAlvaro Herrera2023-11-21 13:55:29 +0000
committerAlvaro Herrera2023-11-21 13:55:29 +0000
commit24ea53dcfab7fe463c0cf56095e9fe5d23cdb748 (patch)
tree5eff8074d38bff21075dc669f740da977f38ea2a /src/include
parente83aa9f92fdd88c2912cc43a61fd9f59f4c8f4d3 (diff)
Avoid overflow in fe_utils' printTable()
The original code would miscalculate the total number of cells when the table to print has more than ~4 billion cells, leading to an unnecessary error. Repair by changing some computations to be 64-bits wide. Add some necessary overflow checks. Author: Hongxu Ma <interma@outlook.com> Discussion: https://postgr.es/m/TYBP286MB0351B057B101C90D7C1239E6B4E2A@TYBP286MB0351.JPNP286.PROD.OUTLOOK.COM
Diffstat (limited to 'src/include')
-rw-r--r--src/include/fe_utils/print.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/include/fe_utils/print.h b/src/include/fe_utils/print.h
index 13ebb003624..cfc26b95203 100644
--- a/src/include/fe_utils/print.h
+++ b/src/include/fe_utils/print.h
@@ -171,7 +171,7 @@ typedef struct printTableContent
const char **cells; /* NULL-terminated array of cell content
* strings */
const char **cell; /* Pointer to the last added cell */
- long cellsadded; /* Number of cells added this far */
+ uint64 cellsadded; /* Number of cells added this far */
bool *cellmustfree; /* true for cells that need to be free()d */
printTableFooter *footers; /* Pointer to the first footer */
printTableFooter *footer; /* Pointer to the last added footer */