Re: BUG #17300: Server crashes on deserializing text multirange

From: Alexander Korotkov <aekorotkov(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Paul A Jungwirth <pj(at)illuminatedcomputing(dot)com>, Alexander Law <exclusion(at)gmail(dot)com>, PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: BUG #17300: Server crashes on deserializing text multirange
Date: 2021-12-11 01:48:05
Message-ID: CAPpHfdtPFbiUtKq7gB1=mMQZz-RaXnZ3=sEtdOVKByO0E58s=A@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Mon, Dec 6, 2021 at 10:39 PM Alexander Korotkov <aekorotkov(at)gmail(dot)com> wrote:
> On Thu, Dec 2, 2021 at 1:39 AM Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> > PG Bug reporting form <noreply(at)postgresql(dot)org> writes:
> > > The following query:
> >
> > > select ('[\"\\\\\",\"\\\\' || repeat('a', 200) ||
> > > '\"]')::textrange::textmultirange
> >
> > > leads to the server crash with the following stacktrace:
> >
> > I think the problem here is that the range bound values inside the
> > multirange are supposed to be aligned (at least, write_multirange_data
> > thinks so) but multirange_get_range isn't accounting for the alignment
> > padding between the two values it extracts. In this example that
> > causes it to extract an insane length for the second value.
> >
> > If so, this would indicate extremely slipshod testing of the multirange
> > stuff, because the breakage is necessarily reached by multirange_out.
>
> Sorry for the delay. I'm going to fix this in the next couple of days.

The proposed patch fixes the patch (and adds some minimal testing for
it). I'm going to push it if no objections (backpatch to v14).

------
Regards,
Alexander Korotkov

Attachment Content-Type Size
multirange_fix_alignment.patch application/octet-stream 5.9 KB

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Vik Fearing 2021-12-11 03:14:33 Re: BUG #17321: count(*) on a 1,874,554,883 rows partitioned table takes several minutes.
Previous Message David G. Johnston 2021-12-10 20:20:10 Re: BUG #17333: pgdg postgresql-common pg_upgradecluster duplicate data_directory in configuration file