psql forgot to close connection before re-issuing password prompt.
([BUGS] psql can crash the backend on login, 2000-09-03)
This commit is contained in:
parent
b5d609a300
commit
239f74d28d
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright 2000 by PostgreSQL Global Development Group
|
* Copyright 2000 by PostgreSQL Global Development Group
|
||||||
*
|
*
|
||||||
* $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.35 2000/07/17 18:24:32 petere Exp $
|
* $Header: /cvsroot/pgsql/src/bin/psql/command.c,v 1.36 2000/09/17 20:33:45 petere Exp $
|
||||||
*/
|
*/
|
||||||
#include "postgres.h"
|
#include "postgres.h"
|
||||||
#include "command.h"
|
#include "command.h"
|
||||||
@ -1237,6 +1237,7 @@ do_connect(const char *new_dbname, const char *new_user)
|
|||||||
if (PQstatus(pset.db) == CONNECTION_BAD &&
|
if (PQstatus(pset.db) == CONNECTION_BAD &&
|
||||||
strcmp(PQerrorMessage(pset.db), "fe_sendauth: no password supplied\n") == 0)
|
strcmp(PQerrorMessage(pset.db), "fe_sendauth: no password supplied\n") == 0)
|
||||||
{
|
{
|
||||||
|
PQfinish(pset.db);
|
||||||
need_pass = true;
|
need_pass = true;
|
||||||
free(prompted_password);
|
free(prompted_password);
|
||||||
prompted_password = NULL;
|
prompted_password = NULL;
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright 2000 by PostgreSQL Global Development Group
|
* Copyright 2000 by PostgreSQL Global Development Group
|
||||||
*
|
*
|
||||||
* $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.36 2000/09/06 19:54:48 petere Exp $
|
* $Header: /cvsroot/pgsql/src/bin/psql/startup.c,v 1.37 2000/09/17 20:33:45 petere Exp $
|
||||||
*/
|
*/
|
||||||
#include "postgres.h"
|
#include "postgres.h"
|
||||||
|
|
||||||
@ -168,6 +168,7 @@ main(int argc, char *argv[])
|
|||||||
if (PQstatus(pset.db) == CONNECTION_BAD &&
|
if (PQstatus(pset.db) == CONNECTION_BAD &&
|
||||||
strcmp(PQerrorMessage(pset.db), "fe_sendauth: no password supplied\n") == 0)
|
strcmp(PQerrorMessage(pset.db), "fe_sendauth: no password supplied\n") == 0)
|
||||||
{
|
{
|
||||||
|
PQfinish(pset.db);
|
||||||
need_pass = true;
|
need_pass = true;
|
||||||
free(password);
|
free(password);
|
||||||
password = NULL;
|
password = NULL;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user