mirror of
https://github.com/postgres/postgres.git
synced 2025-04-27 22:56:53 +03:00
Correct off-by-one when reading from pipe
In pg_basebackup.c:reached_end_position(), we're reading from an internal pipe with our own background process but we're possibly reading more bytes than will actually fit into our buffer due to an off-by-one error. As we're reading from an internal pipe there's no real risk here, but it's good form to not depend on such convenient arrangements. Bug spotted by the Coverity scanner. Back-patch to 9.2 where this showed up.
This commit is contained in:
parent
3355443fb1
commit
03010366b6
@ -174,7 +174,7 @@ reached_end_position(XLogRecPtr segendpos, uint32 timeline,
|
||||
lo;
|
||||
|
||||
MemSet(xlogend, 0, sizeof(xlogend));
|
||||
r = read(bgpipe[0], xlogend, sizeof(xlogend));
|
||||
r = read(bgpipe[0], xlogend, sizeof(xlogend)-1);
|
||||
if (r < 0)
|
||||
{
|
||||
fprintf(stderr, _("%s: could not read from ready pipe: %s\n"),
|
||||
|
Loading…
x
Reference in New Issue
Block a user