Thread: BUG #2059: PGConnect fails when used in a thread

BUG #2059: PGConnect fails when used in a thread

From
"Chris Storah"
Date:
The following bug has been logged online:

Bug reference:      2059
Logged by:          Chris Storah
Email address:      chris.storah@orionsmg.com
PostgreSQL version: 8.0.3
Operating system:   Linux - Fedora Core 4 x86_64 version
Description:        PGConnect fails when used in a thread
Details:

fe-connect.c in the src/interfaces/libpq directory is segfaulting when a
PQconnectdb is called from a thread (works when called from the main
application).

fe-connect.c - parseServiceInfo is failing because no service option is
being used in the connection string so service is NULL. The line that fails
is the 'snprintf(serviceFile, MAXPGPATH, "%s/pg_service.conf", ...) line. If
this is moved into the 'if (service != NULL)' section of code, everything
works fine (as it is never called when no service is specified).

Re: BUG #2059: PGConnect fails when used in a thread

From
Tom Lane
Date:
"Chris Storah" <chris.storah@orionsmg.com> writes:
> fe-connect.c - parseServiceInfo is failing because no service option is
> being used in the connection string so service is NULL. The line that fails
> is the 'snprintf(serviceFile, MAXPGPATH, "%s/pg_service.conf", ...) line.

Huh?  That statement doesn't use 'service', so your analysis makes no
sense.  I agree it's a bit inefficient as coded, but I can't see that it
would crash.  You have other problems to look for.

            regards, tom lane