Commit ab27df24 authored by Tom Lane's avatar Tom Lane

Clean up error message reported after \password encryption failure.

Experimenting with FIPS mode enabled, I saw

regression=# \password joe
Enter new password for user "joe":
Enter it again:
could not encrypt password: disabled for FIPS
out of memory

because PQencryptPasswordConn was still of the opinion that "out of
memory" is always appropriate to print.

Minor oversight in b69aba745.  Like that one, back-patch to v14.
parent 3a0cced8
...@@ -1265,6 +1265,10 @@ PQencryptPasswordConn(PGconn *conn, const char *passwd, const char *user, ...@@ -1265,6 +1265,10 @@ PQencryptPasswordConn(PGconn *conn, const char *passwd, const char *user,
if (strcmp(algorithm, "scram-sha-256") == 0) if (strcmp(algorithm, "scram-sha-256") == 0)
{ {
crypt_pwd = pg_fe_scram_build_secret(passwd); crypt_pwd = pg_fe_scram_build_secret(passwd);
/* We assume the only possible failure is OOM */
if (!crypt_pwd)
appendPQExpBufferStr(&conn->errorMessage,
libpq_gettext("out of memory\n"));
} }
else if (strcmp(algorithm, "md5") == 0) else if (strcmp(algorithm, "md5") == 0)
{ {
...@@ -1282,6 +1286,9 @@ PQencryptPasswordConn(PGconn *conn, const char *passwd, const char *user, ...@@ -1282,6 +1286,9 @@ PQencryptPasswordConn(PGconn *conn, const char *passwd, const char *user,
crypt_pwd = NULL; crypt_pwd = NULL;
} }
} }
else
appendPQExpBufferStr(&conn->errorMessage,
libpq_gettext("out of memory\n"));
} }
else else
{ {
...@@ -1291,9 +1298,5 @@ PQencryptPasswordConn(PGconn *conn, const char *passwd, const char *user, ...@@ -1291,9 +1298,5 @@ PQencryptPasswordConn(PGconn *conn, const char *passwd, const char *user,
return NULL; return NULL;
} }
if (!crypt_pwd)
appendPQExpBufferStr(&conn->errorMessage,
libpq_gettext("out of memory\n"));
return crypt_pwd; return crypt_pwd;
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment