Re: BUG #17300: Server crashes on deserializing text multirange
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Alexander Korotkov <aekorotkov@gmail.com>,
Paul A Jungwirth <pj@illuminatedcomputing.com>
Cc: exclusion@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2021-12-01T22:39:55Z
Lists: pgsql-bugs
PG Bug reporting form <noreply@postgresql.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.
regards, tom lane
Commits
-
Fix alignment in multirange_get_range() function
- 7615edd1db92 14.2 landed
- 5cc9c8374093 15.0 landed