]> granicus.if.org Git - postgresql/commit
Fix two off-by-one errors in bufmgr.c.
authorAndres Freund <andres@anarazel.de>
Wed, 12 Aug 2015 15:35:50 +0000 (17:35 +0200)
committerAndres Freund <andres@anarazel.de>
Wed, 12 Aug 2015 15:35:50 +0000 (17:35 +0200)
commitd25fbf9f3ecffb5c80a9201a6310e74da24556a4
tree110108c87b528b657654b510251728f09fc4793d
parent8a0258c31808c514755e3bba03cb052084c4887c
Fix two off-by-one errors in bufmgr.c.

In 4b4b680c I passed a buffer index number (starting from 0) instead of
a proper Buffer id (which start from 1 for shared buffers) in two
places.

This wasn't noticed so far as one of those locations isn't compiled at
all (PrintPinnedBufs) and the other one (InvalidBuffer) requires a
unlikely, but possible, set of circumstances to trigger a symptom.

To reduce the likelihood of such incidents a bit also convert existing
open coded mappings from buffer descriptors to buffer ids with
BufferDescriptorGetBuffer().

Author: Qingqing Zhou
Reported-By: Qingqing Zhou
Discussion: CAJjS0u2ai9ooUisKtkV8cuVUtEkMTsbK8c7juNAjv8K11zeCQg@mail.gmail.com
Backpatch: 9.5 where the private ref count infrastructure was introduced
src/backend/storage/buffer/bufmgr.c