Re: [BUGS] libpq causes segfault when share library unloaded - Mailing list pgsql-bugs

From Tom Lane
Subject Re: [BUGS] libpq causes segfault when share library unloaded
Date
Msg-id 28739.941764598@sss.pgh.pa.us
Whole thread Raw
In response to libpq causes segfault when share library unloaded  (Jim Studt <jim@federated.com>)
List pgsql-bugs
Jim Studt <jim@federated.com> writes:
> libpq will define an environment variable for PGCLIENTENCODING if
> none is specified.  If libpq is a shared library that is dynamically
> loaded, and it is subsequently unloaded then it leaves an entry in
> the environ array pointing into unmapped memory which will cause
> a segfault the next time the environment array is traversed.

Hmm.  Dynamically unloading a library can cause all sorts of problems,
of course, but the particular code you're complaining of is pretty
bletcherous anyway --- it's using a fixed-size buffer which seems mighty
risky.  I'm inclined to make it put the putenv() string into a malloc'd
buffer instead.  Would that solve the problem in your environment?

            regards, tom lane

pgsql-bugs by date:

Previous
From: Jim Studt
Date:
Subject: libpq causes segfault when share library unloaded
Next
From: "Sean Carmody"
Date:
Subject: simple query triggers abnormal termination