pgsql: foreach() and list_delete() don't mix.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: foreach() and list_delete() don't mix.
Date: 2011-04-17 17:37:50
Message-ID: E1QBVuw-0002kg-Mx@gemulon.postgresql.org
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-committers

foreach() and list_delete() don't mix.

Fix crash when releasing duplicate entries in the encoding conversion cache
list, caused by releasing the current entry of the list being chased by
foreach(). We have a standard idiom for handling such cases, but this
loop wasn't using it.

This got broken in my recent rewrite of GUC assign hooks. Not sure how
I missed this when testing the modified code, but I did. Per report from
Peter.

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/88dc6fa7a164c306d8a1295769edb818d8520a3f

Modified Files
--------------
src/backend/utils/mb/mbutils.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2011-04-17 18:54:28 pgsql: Support a COLLATE clause in plpgsql variable declarations.
Previous Message Tom Lane 2011-04-16 23:29:33 pgsql: Add an Assert that indexam.c isn't used on an index awaiting rei