pgsql: Fix finalization for json_objectagg and friends

From: Andrew Dunstan <andrew(at)dunslane(dot)net>
To: pgsql-committers(at)lists(dot)postgresql(dot)org
Subject: pgsql: Fix finalization for json_objectagg and friends
Date: 2022-04-13 14:38:06
Message-ID: E1nee8E-000LRw-5V@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Fix finalization for json_objectagg and friends

Commit f4fb45d15c misguidedly tried to free some state during aggregate
finalization for json_objectagg. This resulted in attempts to access
freed memory, especially when the function is used as a window function.
Commit 4eb9798879 attempted to ameliorate that, but in fact it should
just be ripped out, which is done here. Also add some regression tests
for json_objectagg in various flavors as a window function.

Original report from Jaime Casanova, diagnosis by Andres Freund.

Discussion: https://postgr.es/m/YkfeMNYRCGhySKyg@ahch-to

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/112fdb3528465cc14a2f1dff3dc27f100326d885

Modified Files
--------------
src/backend/utils/adt/json.c | 12 ------------
src/test/regress/expected/sqljson.out | 35 +++++++++++++++++++++++++++++++++++
src/test/regress/sql/sqljson.sql | 18 ++++++++++++++++++
3 files changed, 53 insertions(+), 12 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Alvaro Herrera 2022-04-13 16:24:56 pgsql: Release cache tuple when no longer needed
Previous Message Peter Eisentraut 2022-04-13 12:12:01 pgsql: Fix incorrect format placeholders