pgsql: Avoid reference to nonexistent array element in ExecInitAgg(). - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Avoid reference to nonexistent array element in ExecInitAgg().
Date
Msg-id E1pCSBK-001jTe-Tk@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
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

Branch
------
REL_14_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/a02740e53fb7d1668e2d0ea1362743d23211d43d

Modified Files
--------------
src/backend/executor/nodeAgg.c | 5 +++++
1 file changed, 5 insertions(+)


pgsql-committers by date:

Previous
From: Bruce Momjian
Date:
Subject: pgsql: Update copyright for 2023
Next
From: Andres Freund
Date:
Subject: pgsql: perl: Hide warnings inside perl.h when using gcc compatible comp