]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
pgbench: Fix overflow in table populating when rows >= 2^31-1
authorMichael Paquier <michael@paquier.xyz>
Sun, 24 Dec 2023 02:49:14 +0000 (11:49 +0900)
committerMichael Paquier <michael@paquier.xyz>
Sun, 24 Dec 2023 02:49:14 +0000 (11:49 +0900)
Using a scale factor large enough so as the number of rows to insert
gets larger than INT32_MAX would cause an infinite loop in
initPopulateTable(), preventing pgbench to finish its initialization.

Oversight in e35cc3b3f2d0 that has refactored the data generation logic.

Author: John Hsu
Reviewed-by: Tatsuo Ishii, Japin Li
Discussion: https://postgr.es/m/CA+-JvFvHsOafjHcuFPfkyouHNZvbOXhBNhwZxKm3WNgYz9bwzA@mail.gmail.com

src/bin/pgbench/pgbench.c

index 2e1650d0ad343aed641b1dec9820f91e6fc8cc2b..1253f1989e6bb7846ad9340747e432cb43594731 100644 (file)
@@ -4908,7 +4908,7 @@ initPopulateTable(PGconn *con, const char *table, int64 base,
                                  initRowMethod init_row)
 {
        int                     n;
-       int                     k;
+       int64           k;
        int                     chars = 0;
        PGresult   *res;
        PQExpBufferData sql;