pgsql: Avoid double-free in vacuumlo error path. - Mailing list pgsql-committers

From Tom Lane
Subject pgsql: Avoid double-free in vacuumlo error path.
Date
Msg-id E1h88Yt-0001qz-LU@gemulon.postgresql.org
Whole thread Raw
List pgsql-committers
Avoid double-free in vacuumlo error path.

The code would do "PQclear(res)" twice if lo_unlink failed, evidently
due to careless thinking about how far out a "break" would break.
Remove the extra PQclear and adjust the loop logic so that we'll fall
out of both levels of loop after an error, as was clearly the intent.

Spotted by Coverity.  I have no idea why it took this long to notice,
since the bug has been there since commit 67ccbb080.  Accordingly,
back-patch to all supported branches.

Branch
------
master

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

Modified Files
--------------
contrib/vacuumlo/vacuumlo.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)


pgsql-committers by date:

Previous
From: Peter Geoghegan
Date:
Subject: Re: pgsql: Make heap TID a tiebreaker nbtree index column.
Next
From: Peter Geoghegan
Date:
Subject: pgsql: Remove dead code from nbtsplitloc.c.