diff options
author | Daniel Gustafsson <dgustafsson@postgresql.org> | 2024-05-14 10:41:32 +0200 |
---|---|---|
committer | Daniel Gustafsson <dgustafsson@postgresql.org> | 2024-05-14 10:41:32 +0200 |
commit | b362d14816699ed05c47355dcb20bbe46f350b86 (patch) | |
tree | 8950ae0154081277caa1a393b36fef9ca9eecb75 /src/backend/libpq/be-secure-common.c | |
parent | ab4d7a38c36dba3997e9b585448837ccf6384aed (diff) | |
download | postgresql-b362d14816699ed05c47355dcb20bbe46f350b86.tar.gz postgresql-b362d14816699ed05c47355dcb20bbe46f350b86.zip |
Fix memory leaks in error reporting with LOG level
When loglevel is set to LOG, allocated strings used in the error
message would leak. Fix by explicitly pfreeing them.
Author: Ranier Vilela <ranier.vf@gmail.com>
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Discussion: https://postgr.es/m/CAEudQAqMeE0AHcOsOzZx51Z0eiFJAjhBPRFt+Bxi3ETXWen7ig@mail.gmail.com
Diffstat (limited to 'src/backend/libpq/be-secure-common.c')
-rw-r--r-- | src/backend/libpq/be-secure-common.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/backend/libpq/be-secure-common.c b/src/backend/libpq/be-secure-common.c index 05826061929..0cb201acb1e 100644 --- a/src/backend/libpq/be-secure-common.c +++ b/src/backend/libpq/be-secure-common.c @@ -85,12 +85,16 @@ run_ssl_passphrase_command(const char *prompt, bool is_server_start, char *buf, } else if (pclose_rc != 0) { + char *reason; + explicit_bzero(buf, size); + reason = wait_result_to_str(pclose_rc); ereport(loglevel, (errcode_for_file_access(), errmsg("command \"%s\" failed", command), - errdetail_internal("%s", wait_result_to_str(pclose_rc)))); + errdetail_internal("%s", reason))); + pfree(reason); goto error; } |