]> git.ipfire.org Git - thirdparty/postgresql.git/commitdiff
Abort authentication if the client selected an invalid SASL mechanism.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 25 May 2017 12:50:47 +0000 (08:50 -0400)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Thu, 25 May 2017 12:50:47 +0000 (08:50 -0400)
Previously, the server would log an error, but then try to continue with
SCRAM-SHA-256 anyway.

Michael Paquier

Discussion: https://www.postgresql.org/message-id/CAB7nPqR0G5aF2_kc_LH29knVqwvmBc66TF5DicvpGVdke68nKw@mail.gmail.com

src/backend/libpq/auth.c

index c895ba0c326f8dd571c4b4db9536b469d3df4918..5b68e3b7a16d3e50cb3427a3b8c7f63092a8c853 100644 (file)
@@ -934,9 +934,13 @@ CheckSCRAMAuth(Port *port, char *shadow_pass, char **logdetail)
                         */
                        selected_mech = pq_getmsgrawstring(&buf);
                        if (strcmp(selected_mech, SCRAM_SHA256_NAME) != 0)
+                       {
                                ereport(COMMERROR,
                                                (errcode(ERRCODE_PROTOCOL_VIOLATION),
                                                 errmsg("client selected an invalid SASL authentication mechanism")));
+                               pfree(buf.data);
+                               return STATUS_ERROR;
+                       }
 
                        inputlen = pq_getmsgint(&buf, 4);
                        if (inputlen == -1)