diff options
| author | Alvaro Herrera | 2023-11-21 13:55:29 +0000 |
|---|---|---|
| committer | Alvaro Herrera | 2023-11-21 13:55:29 +0000 |
| commit | 24ea53dcfab7fe463c0cf56095e9fe5d23cdb748 (patch) | |
| tree | 5eff8074d38bff21075dc669f740da977f38ea2a /src/include | |
| parent | e83aa9f92fdd88c2912cc43a61fd9f59f4c8f4d3 (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.h | 2 |
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 */ |
