pgsql: Avoid multiple free_struct_lconv() calls on same data.

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-committers(at)postgresql(dot)org
Subject: pgsql: Avoid multiple free_struct_lconv() calls on same data.
Date: 2016-02-29 04:40:55
Message-ID: E1aaFdf-0001rP-W9@gemulon.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-committers

Avoid multiple free_struct_lconv() calls on same data.

A failure partway through PGLC_localeconv() led to a situation where
the next call would call free_struct_lconv() a second time, leading
to free() on already-freed strings, typically leading to a core dump.
Add a flag to remember whether we need to do that.

Per report from Thom Brown. His example case only provokes the failure
as far back as 9.4, but nonetheless this code is obviously broken, so
back-patch to all supported branches.

Branch
------
REL9_5_STABLE

Details
-------
http://git.postgresql.org/pg/commitdiff/2d43c45e9d84d711a616d2fca7eb1b040ac5ddaf

Modified Files
--------------
src/backend/utils/adt/pg_locale.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)

Browse pgsql-committers by date

  From Date Subject
Next Message Tom Lane 2016-02-29 04:40:56 pgsql: Avoid multiple free_struct_lconv() calls on same data.
Previous Message Andrew Dunstan 2016-02-28 14:43:00 Re: Re: [COMMITTERS] pgsql: Respect TEMP_CONFIG when running contrib regression tests.