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)
commitff88db91036fed10dedb9e38786506d0460bd7dd
tree48637866f640b0b0ab2597cffd9394b5bd138a04
parent6978129b4e95aa9d75171ede5ff22f6cf8612055
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