Re: BUG #17725: Sefault when seg_in() called with a large argument

John Naylor <john.naylor@enterprisedb.com>

From: John Naylor <john.naylor@enterprisedb.com>
To: tharakan@gmail.com, pgsql-bugs@lists.postgresql.org
Date: 2022-12-20T10:13:55Z
Lists: pgsql-bugs
On Tue, Dec 20, 2022 at 4:28 PM PG Bug reporting form <
noreply@postgresql.org> wrote:

> PostgreSQL version: 15.1

> The following SQL Segfaults on master (tested on b3bb7d12af).

> Backtrace on ea5ae4cae6@REL_14_STABLE:

> SQL: SELECT seg_in(numeric_out(round(31, 10000)))

> 2022-12-20 02:44:43.728 UTC [633388] DETAIL:  Failed process was running:
> SELECT seg_in(numeric_out(round(31,1000000)));

Neither query shows the reported problem in my environment on master (as of
today) or v14, so not sure

=# SELECT seg_in(numeric_out(round(31, 10000)));
 seg_in
--------
 3e1
(1 row)

=# SELECT seg_in(numeric_out(round(31,1000000)));
 seg_in
--------
 3e1
(1 row)

It's possibly relevant that this result is different from the "3.100000e+01"
which was shown in your backtrace. Since a few details of this report don't
agree with each other, I'm starting to wonder if some other relevant
details got lost along the way.

--
John Naylor
EDB: http://www.enterprisedb.com

Commits

  1. Fix contrib/seg to be more wary of long input numbers.