1
0
mirror of https://github.com/postgres/postgres.git synced 2025-06-27 23:21:58 +03:00

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).
This commit is contained in:
Noah Misch
2015-07-08 20:44:21 -04:00
parent a788cbfdc4
commit 5f173a9f2a

View File

@ -1487,7 +1487,8 @@ do_connect(char *dbname, char *user, char *host, char *port)
* 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);
@ -1610,7 +1611,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);