Re: [PATCH] bms_prev_member() can read beyond the end of the array of allocated words
David Rowley <dgrowleyml@gmail.com>
From: David Rowley <dgrowleyml@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Greg Burd <greg@burd.me>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-08-15T04:37:32Z
Lists: pgsql-hackers
On Fri, 15 Aug 2025 at 15:24, Tom Lane <tgl@sss.pgh.pa.us> wrote: > > David Rowley <dgrowleyml@gmail.com> writes: > > I'm happy to push Greg's v5 patch if you have no counterarguments. > > In the end this isn't something I find worth arguing about. If > you prefer v5, sure. I do suggest though that if we're installing > Asserts at all, defending against prevbit < -1 is worth doing. Agreed about defending against prevbit < -1. I added an Assert for that. Technically, that Assert could be up above the if (a == NULL) check, but I didn't think it mattered that much and opted to keep both Asserts together. The difference being that bms_prev_member(NULL, -2) will return -2 rather than Assert fail. I'm not too worried about that, but if you feel strongly differently, I can adjust what I just pushed. David
Commits
-
Add Asserts to validate prevbit values in bms_prev_member
- b4632883d44e 19 (unreleased) landed