]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Avoid reference to nonexistent array element in ExecInitAgg().
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 2 Jan 2023 21:17:00 +0000 (16:17 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 2 Jan 2023 21:17:00 +0000 (16:17 -0500)
commit982b9b1eba8d809cd677009d15ca045cea890c69
tree112bee6ffbb81d826e445141e1b5eb92f9b42821
parentef3de5557687bdb60ab1a810c85a27094450f529
Avoid reference to nonexistent array element in ExecInitAgg().

When considering an empty grouping set, we fetched
phasedata->eqfunctions[-1].  Because the eqfunctions array is
palloc'd, that would always be an aset pointer in released versions,
and thus the code accidentally failed to malfunction (since it would
do nothing unless it found a null pointer).  Nonetheless this seems
like trouble waiting to happen, so add a check for length == 0.

It's depressing that our valgrind testing did not catch this.
Maybe we should reconsider the choice to not mark that word NOACCESS?

Richard Guo

Discussion: https://postgr.es/m/CAMbWs4-vZuuPOZsKOYnSAaPYGKhmacxhki+vpOKk0O7rymccXQ@mail.gmail.com
src/backend/executor/nodeAgg.c