aboutsummaryrefslogtreecommitdiff
path: root/src/backend/libpq/crypt.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2002-04-25 00:56:36 +0000
committerBruce Momjian <bruce@momjian.us>2002-04-25 00:56:36 +0000
commit6cdba03d38a71e58576dd2615dc6897bbfdb133d (patch)
tree4ffc073b92fe89267981486510c4c1c2a100863f /src/backend/libpq/crypt.c
parent39e77dd36546d24ffb2b6f307f26f19a2f6bafed (diff)
downloadpostgresql-6cdba03d38a71e58576dd2615dc6897bbfdb133d.tar.gz
postgresql-6cdba03d38a71e58576dd2615dc6897bbfdb133d.zip
Fix password code to deal with new quoting code.
Diffstat (limited to 'src/backend/libpq/crypt.c')
-rw-r--r--src/backend/libpq/crypt.c24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/backend/libpq/crypt.c b/src/backend/libpq/crypt.c
index 7c665300c85..304f557c319 100644
--- a/src/backend/libpq/crypt.c
+++ b/src/backend/libpq/crypt.c
@@ -9,7 +9,7 @@
* Portions Copyright (c) 1996-2001, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Header: /cvsroot/pgsql/src/backend/libpq/crypt.c,v 1.45 2002/04/04 04:25:47 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/crypt.c,v 1.46 2002/04/25 00:56:36 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -31,18 +31,26 @@
int
md5_crypt_verify(const Port *port, const char *user, const char *pgpass)
{
- char *passwd,
- *valuntil,
+ char *passwd = NULL,
+ *valuntil = NULL,
*crypt_pwd;
int retval = STATUS_ERROR;
List **line;
-
+ List *token;
+
if ((line = get_user_line(user)) == NULL)
return STATUS_ERROR;
- passwd = lfirst(lnext(lnext(*line)));
- valuntil = lfirst(lnext(lnext(lnext(*line))));
-
+ /* Skip over line number and username */
+ token = lnext(lnext(*line));
+ if (token)
+ {
+ passwd = lfirst(token);
+ token = lnext(token);
+ if (token)
+ valuntil = lfirst(token);
+ }
+
if (passwd == NULL || *passwd == '\0')
{
if (passwd)
@@ -120,7 +128,7 @@ md5_crypt_verify(const Port *port, const char *user, const char *pgpass)
AbsoluteTime vuntil,
current;
- if (!valuntil || strcmp(valuntil, "\\N") == 0)
+ if (!valuntil)
vuntil = INVALID_ABSTIME;
else
vuntil = DatumGetAbsoluteTime(DirectFunctionCall1(nabstimein,