Skip to content
Snippets Groups Projects
Commit 6cdba03d authored by Bruce Momjian's avatar Bruce Momjian
Browse files

Fix password code to deal with new quoting code.

parent 39e77dd3
No related branches found
No related tags found
No related merge requests found
......@@ -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,
......
......@@ -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);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment