aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/archive/shell_archive.c2
-rw-r--r--src/backend/libpq/be-secure-common.c6
2 files changed, 7 insertions, 1 deletions
diff --git a/src/backend/archive/shell_archive.c b/src/backend/archive/shell_archive.c
index 0925348bfee..506c5a30ad2 100644
--- a/src/backend/archive/shell_archive.c
+++ b/src/backend/archive/shell_archive.c
@@ -125,9 +125,11 @@ shell_archive_file(ArchiveModuleState *state, const char *file,
errdetail("The failed archive command was: %s",
xlogarchcmd)));
}
+ pfree(xlogarchcmd);
return false;
}
+ pfree(xlogarchcmd);
elog(DEBUG1, "archived write-ahead log file \"%s\"", file);
return true;
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;
}