Thank you very much, you catch it :). This bug had a long life, because it

exists if and only if locale of postmaster
was a different from C (or ru_RU.KOI8-R).

Please, apply patch for current CVS & 7.3.1

Magnus Naeslund(f) wrote:
> Ok, I nailed the bug, but i'm not sure what the correct fix is.
> Attached tsearch_morph.diff that remedies this problem by avoiding it.
> Also there's a debug aid patch if someone would like to know how i
> finally found it out :)
>
> There problem in the lemmatize() function is that GETDICT(...) returned
> a value not handled (BYLOCALE).
> The value (-1) and later used as an index into the dicts[] array.
> After that everything went berserk stack went crazy somehow so trapping
> the fault sent me to the wrong place, and every time i read the value it
> was positive ;)
>
> So now i just return the initial word passed to the lemmatize function,
> because i don't know what to do with it.

Magnus Naeslund
This commit is contained in:
Bruce Momjian 2002-12-06 05:15:02 +00:00
parent f679690621
commit a2bd3e2085

View File

@ -173,6 +173,10 @@ lemmatize(char *word, int *len, int type)
/* word is stopword */
return NULL;
}
else if (nd == BYLOCALE)
{
continue; /* no dict for current locale */
}
else
{
dict = &dicts[nd];