pgbench: fix misprocessing of some nested \if constructs.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 15 Dec 2024 19:14:15 +0000 (14:14 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 15 Dec 2024 19:14:15 +0000 (14:14 -0500)
commitff9dc96f370aa33a5c1c578c43c598473705d82f
tree88314aa84e8b57c77a88f8ec1ac970e959e07c3e
parent87e16d632622c622244dba8d1bfc8afbf222d614
pgbench: fix misprocessing of some nested \if constructs.

An \if command appearing within a false (not-to-be-executed) \if
branch was incorrectly treated the same as \elif.  This could allow
statements within the inner \if to be executed when they should
not be.  Also the missing inner \if stack entry would result in an
assertion failure (in assert-enabled builds) when the final \endif
is reached.

Report and patch by Michail Nikolaev.  Back-patch to all
supported branches.

Discussion: https://postgr.es/m/CANtu0oiA1ke=SP6tauhNqkUdv5QFsJtS1p=aOOf_iU+EhyKkjQ@mail.gmail.com
src/bin/pgbench/pgbench.c
src/bin/pgbench/t/001_pgbench_with_server.pl