postgres.git / summary / log / commit / refs
commit fb60050f42019b1dc5781fa0f43ca0fa7f0de9c7
Author: Tomas Vondra <tomas.vondra@postgresql.org>
Date: Fri Jan 24 23:36:48 2025 +0000
Use the correct sizeof() in BufFileLoadBuffer
The sizeof() call should reference buffer.data, because that's the
buffer we're reading data into, not the whole PGAlignedBuffer union.
This was introduced by 44cac93464, which replaced the simple buffer
with a PGAlignedBuffer field.
It's benign, because the buffer is the largest field of the union, so
the sizes are the same. But it's easy to trip over this in a patch, so
fix and backpatch. Commit 44cac93464 went into 12, but that's EOL.
Backpatch-through: 13
Discussion: https://postgr.es/m/928bdab1-6567-449f-98c4-339cd2203b87@vondra.me
src/backend/storage/file/buffile.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/backend/storage/file/buffile.c b/src/backend/storage/file/buffile.c
index a4be5fe5135..2afbe907ac5 100644
--- a/src/backend/storage/file/buffile.c
+++ b/src/backend/storage/file/buffile.c
@@ -434,7 +434,7 @@ BufFileLoadBuffer(BufFile *file)
thisfile = file->files[file->curFile];
file->nbytes = FileRead(thisfile,
file->buffer.data,
- sizeof(file->buffer),
+ sizeof(file->buffer.data),
file->curOffset,
WAIT_EVENT_BUFFILE_READ);
if (file->nbytes < 0)
[parent: 63a4b9f76786]