From 92598f4fa58da45226b3414d6d880cf4622481a7 Mon Sep 17 00:00:00 2001 From: Tomas Vondra Date: Sat, 25 Jan 2025 00:36:48 +0100 Subject: [PATCH] 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 41ab64100e3..1964a75ca89 100644 --- a/src/backend/storage/file/buffile.c +++ b/src/backend/storage/file/buffile.c @@ -459,7 +459,7 @@ BufFileLoadBuffer(BufFile *file) */ file->nbytes = FileRead(thisfile, file->buffer.data, - sizeof(file->buffer), + sizeof(file->buffer.data), file->curOffset, WAIT_EVENT_BUFFILE_READ); if (file->nbytes < 0) -- 2.39.5