Re: Assert failure on 'list_member_ptr(rel->joininfo, restrictinfo)'

Andres Freund <andres@anarazel.de>

From: Andres Freund <andres@anarazel.de>
To: Alexander Korotkov <aekorotkov@gmail.com>
Cc: Richard Guo <guofenglinux@gmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2023-11-15T06:04:21Z
Lists: pgsql-hackers
Hi,

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.

Greetings,

Andres



Commits

  1. Add asserts to bimapset manipulation functions

  2. Make replace_relid() leave argument unmodified

  3. REALLOCATE_BITMAPSETS manual compile-time option