Fix MarkBufferDirtyHint() to not call GetBufferDescriptor() for local buffers
GetBufferDescriptor() was called before checking if the buffer is local. Such buffers have a negative ID, meaning that we could call GetBufferDescriptor() with a wrapped-around uint32 value causing a potential out-of-bound access to the BufferDescriptors array. This is harmless in the existing code for the current uses of MarkBufferDirtyHint(), but the author has found a way to make that buggy while working on a different patch set, and the order of the operations is wrong. Oversight in 82467f627bd4. No backpatch is required, as this is new to v19. Author: Ashutosh Bapat <[email protected]> Discussion: https://postgr.es/m/caexhw5uzrmyvzsxxs3hxxt0fg_snrpuhuqwp4norhacqh9j...@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/e18b0cb7344cb4bd28468f6c0aeeb9b9241d30aa Modified Files -------------- src/backend/storage/buffer/bufmgr.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
