summaryrefslogtreecommitdiff
path: root/src/bin
diff options
context:
space:
mode:
authorAndres Freund <andres@anarazel.de>2015-01-04 14:36:21 +0100
committerAndres Freund <andres@anarazel.de>2015-01-04 14:36:21 +0100
commit0398ece4c5baacc98f0fd46a731518b3ccb25bb3 (patch)
treeaeb2a6c7e777f53d6119e6cf6832340c4459bb57 /src/bin
parent2c0a4858965f1375dadb45df9f3a054bfcb283f5 (diff)
downloadpostgresql-0398ece4c5baacc98f0fd46a731518b3ccb25bb3.tar.gz
Fix inconsequential fd leak in the new mark_file_as_archived() function.
As every error in mark_file_as_archived() will lead to a failure of pg_basebackup the FD leak couldn't ever lead to a real problem. It seems better to fix the leak anyway though, rather than silence Coverity, as the usage of the function might get extended or copied at some point in the future. Pointed out by Coverity. Backpatch to 9.2, like the relevant part of the previous patch.
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/pg_basebackup/receivelog.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/bin/pg_basebackup/receivelog.c b/src/bin/pg_basebackup/receivelog.c
index 123f44526c..dc1d7d8648 100644
--- a/src/bin/pg_basebackup/receivelog.c
+++ b/src/bin/pg_basebackup/receivelog.c
@@ -81,6 +81,9 @@ mark_file_as_archived(const char *basedir, const char *fname)
{
fprintf(stderr, _("%s: could not fsync file \"%s\": %s\n"),
progname, tmppath, strerror(errno));
+
+ close(fd);
+
return false;
}