Re: CREATE TEXT SEARCH DICTIONARY segfaulting on 9.6+

Artur Zakirov <zaartur@gmail.com>

From: Artur Zakirov <zaartur@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Tomas Vondra <tomas.vondra@2ndquadrant.com>, pgsql-hackers <pgsql-hackers@postgresql.org>, Teodor Sigaev <teodor@sigaev.ru>
Date: 2019-11-03T03:50:45Z
Lists: pgsql-hackers
On Sun, Nov 3, 2019 at 5:48 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Arthur Zakirov <zaartur@gmail.com> writes:
> > On 2019/10/13 10:26, Tomas Vondra wrote:
> >> So I think we need some sort of cross-check here. We certainly need to
> >> make NISortDictionary() check the affix value is within AffixData
> >> bounds, and error out when the index is non-sensical (maybe negative
> >> and/or exceeding nAffixData).
>
> > I agree, I attached the patch which do this. I also added couple
> > asserts, tests and fixed condition in getAffixFlagSet():
>
> > -             if (curaffix > 0 && curaffix <= Conf->nAffixData)
> > +             if (curaffix > 0 && curaffix < Conf->nAffixData)
>
> Looks reasonable to me, and we need to get something done before
> the upcoming releases, so I pushed this.  Perhaps there's more
> that could be done later.

Great, thank you!

-- 
Artur



Commits

  1. Validate ispell dictionaries more carefully.