Re: Assert failure on 'list_member_ptr(rel->joininfo, restrictinfo)'
Alexander Korotkov <aekorotkov@gmail.com>
From: Alexander Korotkov <aekorotkov@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: Richard Guo <guofenglinux@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2023-11-15T15:06:32Z
Lists: pgsql-hackers
On Wed, Nov 15, 2023 at 8:04 AM Andres Freund <andres@anarazel.de> wrote: > > On 2023-11-14 14:42:13 +0200, Alexander Korotkov wrote: > > It's possibly dumb option, but what about just removing the assert? > > That's not at all an option - the in-place bms_* functions can free their > input. So a dangling pointer to the "old" version is a use-after-free waiting > to happen - you just need a query that actually gets to bitmapsets that are a > bit larger. Yeah, now I got it, thank you. I was under the wrong impression that bitmapset has the level of indirection, so the pointer remains valid. Now, I see that bitmapset manipulation functions can do free/repalloc making the previous bitmapset pointer invalid. ------ Regards, Alexander Korotkov
Commits
-
Add asserts to bimapset manipulation functions
- 71a3e8c43ba8 17.0 landed
-
Make replace_relid() leave argument unmodified
- e0477837ce49 17.0 landed
-
REALLOCATE_BITMAPSETS manual compile-time option
- 7d58f2342bd3 17.0 landed