diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2017-04-13 17:44:15 +0300 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2017-04-13 17:44:15 +0300 |
commit | 00707fa58275e370dc445fa7e1130085aa04f37b (patch) | |
tree | ac34d654e3d719bc3eb2ff9f5d13b9b1da2b902f /src/backend/libpq/auth-scram.c | |
parent | 3d5facfd9ab66c819ed583b2614b0560405a6aa2 (diff) | |
download | postgresql-00707fa58275e370dc445fa7e1130085aa04f37b.tar.gz postgresql-00707fa58275e370dc445fa7e1130085aa04f37b.zip |
Minor cleanup of backend SCRAM code.
Free each SASL message after sending it. It's not a lot of wasted memory,
and it's short-lived, but the authentication code in general tries to
pfree() stuff, so let's follow the example.
Adding the pfree() revealed a little bug in build_server_first_message().
It attempts to keeps a copy of the sent message, but it was missing a
pstrdup(), so the pointer started to dangle, after adding the pfree()
into CheckSCRAMAuth().
Reword comments and debug messages slightly, while we're at it.
Reviewed by Michael Paquier.
Discussion: https://www.postgresql.org/message-id/6490b975-5ee1-6280-ac1d-af975b19fb9a@iki.fi
Diffstat (limited to 'src/backend/libpq/auth-scram.c')
-rw-r--r-- | src/backend/libpq/auth-scram.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/backend/libpq/auth-scram.c b/src/backend/libpq/auth-scram.c index 5077ff33b16..a47c48d9805 100644 --- a/src/backend/libpq/auth-scram.c +++ b/src/backend/libpq/auth-scram.c @@ -161,10 +161,10 @@ static char *scram_MockSalt(const char *username); * needs to be called before doing any exchange. It will be filled later * after the beginning of the exchange with verifier data. * - * 'username' is the provided by the client. 'shadow_pass' is the role's - * password verifier, from pg_authid.rolpassword. If 'shadow_pass' is NULL, we - * still perform an authentication exchange, but it will fail, as if an - * incorrect password was given. + * 'username' is the username provided by the client in the startup message. + * 'shadow_pass' is the role's password verifier, from pg_authid.rolpassword. + * If 'shadow_pass' is NULL, we still perform an authentication exchange, but + * it will fail, as if an incorrect password was given. */ void * pg_be_scram_init(const char *username, const char *shadow_pass) @@ -984,7 +984,7 @@ build_server_first_message(scram_state *state) state->client_nonce, state->server_nonce, state->salt, state->iterations); - return state->server_first_message; + return pstrdup(state->server_first_message); } |