Avoid reference to nonexistent array element in ExecInitAgg().
Tom Lane <tgl@sss.pgh.pa.us>
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
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/executor/nodeAgg.c | modified | +5 −0 |
Discussion
- An oversight in ExecInitAgg for grouping sets 10 messages · 2022-12-22 → 2023-04-11