aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2015-01-15 09:26:03 -0500
committerRobert Haas <rhaas@postgresql.org>2015-01-15 09:42:33 -0500
commit151fb75b0d6eb1e9622ef53e11361986ea26bae5 (patch)
tree8061ab337c617f27cf5af0ed9278bc44fefe9620
parent741b1b22a2c09449b3be8af25e18b53190fc8c77 (diff)
downloadpostgresql-151fb75b0d6eb1e9622ef53e11361986ea26bae5.tar.gz
postgresql-151fb75b0d6eb1e9622ef53e11361986ea26bae5.zip
pg_standby: Avoid writing one byte beyond the end of the buffer.
Previously, read() might have returned a length equal to the buffer length, and then the subsequent store to buf[len] would write a zero-byte one byte past the end. This doesn't seem likely to be a security issue, but there's some chance it could result in pg_standby misbehaving. Spotted by Coverity; patch by Michael Paquier, reviewed by me.
-rw-r--r--contrib/pg_standby/pg_standby.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/contrib/pg_standby/pg_standby.c b/contrib/pg_standby/pg_standby.c
index a99b94ef1b5..68b6e44a3ec 100644
--- a/contrib/pg_standby/pg_standby.c
+++ b/contrib/pg_standby/pg_standby.c
@@ -435,7 +435,7 @@ CheckForExternalTrigger(void)
return;
}
- if ((len = read(fd, buf, sizeof(buf))) < 0)
+ if ((len = read(fd, buf, sizeof(buf) - 1)) < 0)
{
fprintf(stderr, "WARNING: could not read \"%s\": %s\n",
triggerPath, strerror(errno));