Thread: fix regression in .pgpass handling

fix regression in .pgpass handling

From
Neil Conway
Date:
The handling of .pgpass files in libpq was recently "fixed" to work with
all connection methods (a patch applied to both REL7_3_STABLE and HEAD),
but that change broke .pgpass usage in PQsetdbLogin().

This patch fixes the regression, so .pgpass should now be able to work
with all of the appropriate database connection methods in libpq.

I also fixed a bug in the parsing of .pgpass: if the file was not
terminated by a newline, the password would be slightly mangled. I
didn't bother to account for a CRLF line ending -- is getenv("HOME")
defined on Win32?

I also refactored a bit of code in PasswordFromFile(), and added some
missing environmental variables to the libpq docs.

This patch is against CVS HEAD, but it should apply to REL7_3_STABLE
with just a few offsets. Please apply to both.

Cheers,

Neil
--
Neil Conway <neilc@samurai.com> || PGP Key ID: DB3C29FC



Attachment

Re: fix regression in .pgpass handling

From
Tom Lane
Date:
Neil Conway <neilc@samurai.com> writes:
> The handling of .pgpass files in libpq was recently "fixed" to work with
> all connection methods (a patch applied to both REL7_3_STABLE and HEAD),
> but that change broke .pgpass usage in PQsetdbLogin().
> This patch fixes the regression, so .pgpass should now be able to work
> with all of the appropriate database connection methods in libpq.

Patch applied --- thanks!

            regards, tom lane

Re: fix regression in .pgpass handling

From
Bruce Momjian
Date:
Neil, thanks for the fix.  I saw PQsetdbLogin() calling connectDBStart()
and thought that was the same as PQconnectStart(), where
PasswordFromFile() was already handled;  especially thanks for fixing
this befor 7.3.2 was released.

---------------------------------------------------------------------------

Neil Conway wrote:
> The handling of .pgpass files in libpq was recently "fixed" to work with
> all connection methods (a patch applied to both REL7_3_STABLE and HEAD),
> but that change broke .pgpass usage in PQsetdbLogin().
>
> This patch fixes the regression, so .pgpass should now be able to work
> with all of the appropriate database connection methods in libpq.
>
> I also fixed a bug in the parsing of .pgpass: if the file was not
> terminated by a newline, the password would be slightly mangled. I
> didn't bother to account for a CRLF line ending -- is getenv("HOME")
> defined on Win32?
>
> I also refactored a bit of code in PasswordFromFile(), and added some
> missing environmental variables to the libpq docs.
>
> This patch is against CVS HEAD, but it should apply to REL7_3_STABLE
> with just a few offsets. Please apply to both.
>
> Cheers,
>
> Neil
> --
> Neil Conway <neilc@samurai.com> || PGP Key ID: DB3C29FC
>
>

[ Attachment, skipping... ]

>
> ---------------------------(end of broadcast)---------------------------
> TIP 2: you can get off all lists at once with the unregister command
>     (send "unregister YourEmailAddressHere" to majordomo@postgresql.org)

--
  Bruce Momjian                        |  http://candle.pha.pa.us
  pgman@candle.pha.pa.us               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073