On Mon, Jan 20, 2020 at 01:12:35PM -0500, Tom Lane wrote: > David Fetter <da...@fetter.org> writes: > > At least two cloud providers are now stuffing large amounts of > > information into the password field. This change makes it possible to > > accommodate that usage in interactive sessions. > > Like who?
AWS and Azure are two examples I know of. > It seems like a completely silly idea. And if 2K is sane, why not > much more? Good question. Does it make sense to rearrange these things so they're allocated at runtime instead of compile time? > (I can't say that s/100/2048/ in one place is a particularly evil > change; what bothers me is the likelihood that there are other > places that won't cope with arbitrarily long passwords. Not all of > them are necessarily under our control, either.) I found one that is, so please find attached the next revision of the patch. Best, David. -- David Fetter <david(at)fetter(dot)org> http://fetter.org/ Phone: +1 415 235 3778 Remember to vote! Consider donating to Postgres: http://www.postgresql.org/about/donate
>From dfe72e1f7b3af646ba3d0bff017c9574eb54eb4c Mon Sep 17 00:00:00 2001 From: David Fetter <da...@fetter.org> Date: Mon, 20 Jan 2020 09:58:19 -0800 Subject: [PATCH v2] Increase psql's password buffer size To: hackers MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------2.24.1" This is a multi-part message in MIME format. --------------2.24.1 Content-Type: text/plain; charset=UTF-8; format=fixed Content-Transfer-Encoding: 8bit At least two cloud providers are now stuffing large amounts of information into the password field. This makes it possible to accommodate that usage in interactive sessions. diff --git a/src/bin/psql/command.c b/src/bin/psql/command.c index e111cee556..61386fe4ae 100644 --- a/src/bin/psql/command.c +++ b/src/bin/psql/command.c @@ -1827,8 +1827,8 @@ exec_command_password(PsqlScanState scan_state, bool active_branch) { char *opt0 = psql_scan_slash_option(scan_state, OT_SQLID, NULL, true); - char pw1[100]; - char pw2[100]; + char pw1[2048]; + char pw2[2048]; simple_prompt("Enter new password: ", pw1, sizeof(pw1), false); simple_prompt("Enter it again: ", pw2, sizeof(pw2), false); @@ -2845,7 +2845,7 @@ copy_previous_query(PQExpBuffer query_buf, PQExpBuffer previous_buf) static char * prompt_for_password(const char *username) { - char buf[100]; + char buf[2048]; if (username == NULL || username[0] == '\0') simple_prompt("Password: ", buf, sizeof(buf), false); --------------2.24.1--