Fix memory leaks if random salt generation fails.
In the backend, this is just to silence coverity warnings, but in the frontend, it's a genuine leak, even if extremely rare. Spotted by Coverity, patch by Michael Paquier.
This commit is contained in:
parent
a54d5875fe
commit
0186ded546
@ -411,6 +411,8 @@ pg_be_scram_build_verifier(const char *password)
|
|||||||
ereport(LOG,
|
ereport(LOG,
|
||||||
(errcode(ERRCODE_INTERNAL_ERROR),
|
(errcode(ERRCODE_INTERNAL_ERROR),
|
||||||
errmsg("could not generate random salt")));
|
errmsg("could not generate random salt")));
|
||||||
|
if (prep_password)
|
||||||
|
pfree(prep_password);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -638,7 +638,11 @@ pg_fe_scram_build_verifier(const char *password)
|
|||||||
|
|
||||||
/* Generate a random salt */
|
/* Generate a random salt */
|
||||||
if (!pg_frontend_random(saltbuf, SCRAM_DEFAULT_SALT_LEN))
|
if (!pg_frontend_random(saltbuf, SCRAM_DEFAULT_SALT_LEN))
|
||||||
|
{
|
||||||
|
if (prep_password)
|
||||||
|
free(prep_password);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
result = scram_build_verifier(saltbuf, SCRAM_DEFAULT_SALT_LEN,
|
result = scram_build_verifier(saltbuf, SCRAM_DEFAULT_SALT_LEN,
|
||||||
SCRAM_DEFAULT_ITERATIONS, password);
|
SCRAM_DEFAULT_ITERATIONS, password);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user