Skip site navigation (1) Skip section navigation (2)

Re: Problem with setlocale (found in libecpg) [accessing a

From: Bruce Momjian <pgman(at)candle(dot)pha(dot)pa(dot)us>
To: Christof Petig <christof(at)petig-baender(dot)de>
Cc: Michael Meskes <meskes(at)postgresql(dot)org>, pgsql-patches(at)postgresql(dot)org
Subject: Re: Problem with setlocale (found in libecpg) [accessing a
Date: 2001-09-26 20:22:06
Message-ID: 200109262022.f8QKM7K01840@candle.pha.pa.us (view raw or flat)
Thread:
Lists: pgsql-hackerspgsql-patches
Your patch has been added to the PostgreSQL unapplied patches list at:

	http://candle.pha.pa.us/cgi-bin/pgpatches

I will try to apply it within the next 48 hours.

> Hello,
> 
> well at first I could not believe what I was seeing ...
> 
> Look at the following code (ecpg/lib/execute.c):
> 
>    const char *locale=setlocale(LC_NUMERIC, NULL);
>    setlocale(LC_NUMERIC, "C");
> [....]
>    setlocale(LC_NUMERIC, locale);
> 
> 
> Well at least on glibc-2.2 it seems that setlocale retuns a pointer to
> malloced memory, and frees this pointer on subsequent calls to
> setlocale. This is standard conformant and has good reasons. But used as
> above it is lethal (but not lethal enough to be easily recognized). So
> the content locale points to is freed by the second call to setlocale.
> 
> The remedy is easy (given that _no other_ call to setlocale happens
> inbetween ...)
> 
>    const char *locale=setlocale(LC_NUMERIC, "C");
>    [...]
>    setlocale(LC_NUMERIC, locale);
> 
> 
> So I would kindly ask you to take a second look at every invokation of
> setlocale. And to apply the following patch.
> 
> Yours
>     Christof
> 

[ application/x-gzip is not supported, skipping... ]

> 
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
> 
> http://www.postgresql.org/users-lounge/docs/faq.html

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman(at)candle(dot)pha(dot)pa(dot)us               |  (610) 853-3000
  +  If your life is a hard drive,     |  830 Blythe Avenue
  +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026

In response to

Responses

pgsql-hackers by date

Next:From: Vince VielhaberDate: 2001-09-26 20:30:52
Subject: casting for dates
Previous:From: Tom LaneDate: 2001-09-26 20:05:44
Subject: Re: Spinlock performance improvement proposal

pgsql-patches by date

Next:From: gregDate: 2001-09-26 23:42:09
Subject: How to diff a man page?
Previous:From: Bruce MomjianDate: 2001-09-26 19:58:11
Subject: Re: Patch for pl/tcl Tcl_ExternalToUtf and Tcl_UtfToExternal

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group