postgres.git / summary / log / commit / refs

commit    151fb75b0d6eb1e9622ef53e11361986ea26bae5
Author:   Robert Haas <rhaas@postgresql.org>
Date:     Thu Jan 15 14:26:03 2015 +0000

    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.


contrib/pg_standby/pg_standby.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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)); [parent: 741b1b22a2c0]