]> git.ipfire.org Git - thirdparty/postgresql.git/commit
In psql, avoid leaking a PGresult after a query is cancelled.
authorTom Lane <tgl@sss.pgh.pa.us>
Mon, 8 Apr 2024 21:00:07 +0000 (17:00 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Mon, 8 Apr 2024 21:00:07 +0000 (17:00 -0400)
commit4f1d33d707fbdf38296ed8b262ae1ea3dcde2b18
tree96be1b63f8fcfc0dcdfd1a5c8b71dd22393a4053
parentdcb7cf945c88eabce7f8350023b8184266d96a12
In psql, avoid leaking a PGresult after a query is cancelled.

After a query cancel, the tail end of ExecQueryAndProcessResults
took care to clear any not-yet-read PGresults; but it forgot about
the one it has already read.  There would only be such a result
when handling a multi-command string made with "\;", so that you'd
have to cancel an earlier command in such a string to reach the
bug at all.  Even then, there would only be leakage of a single
PGresult per cancel, so it's not surprising nobody noticed this.
But a leak is a leak.

Noted while re-reviewing 90f517821, but this is independent of that:
it dates to 7844c9918.  Back-patch to v15 where that came in.
src/bin/psql/common.c