Re: BUG #15540: Use after release in ExecuteTruncateGuts - Mailing list pgsql-bugs

From Tom Lane
Subject Re: BUG #15540: Use after release in ExecuteTruncateGuts
Date
Msg-id 31125.1544198945@sss.pgh.pa.us
Whole thread Raw
In response to BUG #15540: Use after release in ExecuteTruncateGuts  (PG Bug reporting form <noreply@postgresql.org>)
Responses Re: BUG #15540: Use after release in ExecuteTruncateGuts  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Re: BUG #15540: Use after release in ExecuteTruncateGuts  (PanBian <bianpan2016@163.com>)
List pgsql-bugs
=?utf-8?q?PG_Bug_reporting_form?= <noreply@postgresql.org> writes:
> The function ExecuteTruncateGuts drops the reference to rel via
> relation_close when toast_relid is valid. However, after that, rel is passed
> to pgstat_count_truncate. This may result in a use-after-release bug.

... and, even more to the point, the truncation stats count is incorrectly
applied to the toast table not its parent.

> Maybe,
> rel should be re-declared on the branch that toast_relid is valid.

Yeah, seems like the right way.  Will fix.

Are you using a static analyzer to find these?  I'm curious how
you noticed them.

            regards, tom lane


pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: BUG #15539: Deadcode in OpenTableList
Next
From: Alvaro Herrera
Date:
Subject: Re: BUG #15540: Use after release in ExecuteTruncateGuts