BUG #16144: Segmentation fault on dict_int extension

PG Bug reporting form <[email protected]>
Newsgroups gmane.comp.db.postgresql.bugs
Message-ID <[email protected]>
The following bug has been logged on the website:

Bug reference:      16144
Logged by:          cili
Email address:      [email protected]
PostgreSQL version: 12.1
Operating system:   CentOS 7.4
Description:        

The dict_int extension is an example of an add-on dictionary template for
full-text search. The 'intdict' is a built-in dictionary. If we set MAXLEN
parameter with negative value for the dictionary, ts_lexize function causes
a segmentation fault. The negative limit for MAXLEN which causes
segmentation fault is environment dependent. 

# initdb
# pg_ctl -D /var/lib/pgsql/data -l logfile start
# psql

postgres=# CREATE EXTENSION dict_int;
CREATE EXTENSION
postgres=# ALTER TEXT SEARCH DICTIONARY intdict (MAXLEN = -214783648);
ALTER TEXT SEARCH DICTIONARY
postgres=# select ts_lexize('intdict', '12345678');
server closed the connection unexpectedly
	This probably means the server terminated abnormally
	before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
!>
!>\q

# cat /var/lib/pgsql/data/pg_log/postgresql-Mon.log
LOG:  database system was shut down at 2019-12-02 12:05:17 UTC
LOG:  database system is ready to accept connections
LOG:  autovacuum launcher started
LOG:  server process (PID 5288) was terminated by signal 11: Segmentation
fault
DETAIL:  Failed process was running: select ts_lexize('intdict',
'12345678');
LOG:  terminating any other active server processes
WARNING:  terminating connection because of crash of another server
process
DETAIL:  The postmaster has commanded this server process to roll back the
current transaction and exit, because another server process exited
abnormally and possibly corrupted shared memory.
HINT:  In a moment you should be able to reconnect to the database and
repeat your command.
LOG:  all server processes terminated; reinitializing
FATAL:  the database system is in recovery mode
LOG:  database system was interrupted; last known up at 2019-12-02 12:05:24
UTC
LOG:  database system was not properly shut down; automatic recovery in
progress
LOG:  redo starts at 0/180D7F8
LOG:  record with zero length at 0/1822720
LOG:  redo done at 0/18226F0
LOG:  last completed transaction was at log time 2019-12-02
12:05:42.199372+00
LOG:  database system is ready to accept connections
LOG:  autovacuum launcher started
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.