aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/libpq/crypt.c24
-rw-r--r--src/backend/libpq/hba.c10
2 files changed, 21 insertions, 13 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,
diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c
index fce63ab2436..5e97d132b2a 100644
--- a/src/backend/libpq/hba.c
+++ b/src/backend/libpq/hba.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/libpq/hba.c,v 1.81 2002/04/04 04:25:47 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/hba.c,v 1.82 2002/04/25 00:56:36 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -109,9 +109,6 @@ next_token(FILE *fp, char *buf, const int bufsz)
while (c != EOF && c != '\n' &&
(!isblank(c) || in_quote == true))
{
- if (c == '"')
- in_quote = !in_quote;
-
/* skip comments to EOL */
if (c == '#' && !in_quote)
{
@@ -138,11 +135,14 @@ next_token(FILE *fp, char *buf, const int bufsz)
break;
/* Literal double-quote is two double-quotes */
- if (c == '"')
+ if (in_quote && c == '"')
was_quote = !was_quote;
else
was_quote = false;
+ if (c == '"')
+ in_quote = !in_quote;
+
c = getc(fp);
}