Fix null pointer dereference in "\c" psql command.

The psql crash happened when no current connection existed.  (The second
new check is optional given today's undocumented NULL argument handling
in PQhost() etc.)  Back-patch to 9.0 (all supported versions).
pull/14/head
Noah Misch 11 years ago
parent 3b14a17c8e
commit e135c3d99f
  1. 6
      src/bin/psql/command.c

@ -1753,7 +1753,8 @@ do_connect(char *dbname, char *user, char *host, char *port)
* positional syntax.
*/
keep_password =
((strcmp(user, PQuser(o_conn)) == 0) &&
(o_conn &&
(strcmp(user, PQuser(o_conn)) == 0) &&
(!host || strcmp(host, PQhost(o_conn)) == 0) &&
(strcmp(port, PQport(o_conn)) == 0) &&
!has_connection_string);
@ -1880,7 +1881,8 @@ do_connect(char *dbname, char *user, char *host, char *port)
/* Tell the user about the new connection */
if (!pset.quiet)
{
if (param_is_newly_set(PQhost(o_conn), PQhost(pset.db)) ||
if (!o_conn ||
param_is_newly_set(PQhost(o_conn), PQhost(pset.db)) ||
param_is_newly_set(PQport(o_conn), PQport(pset.db)))
{
char *host = PQhost(pset.db);

Loading…
Cancel
Save