Commit 0b1ee9b5 authored by Teodor Sigaev's avatar Teodor Sigaev

fix hlfinditem function. Thanks to "Stphane Bidoul" <stephane.bidoul@softwareag.com>.

The 'word' variable there is initialised from
the prs->words array, but immediately after,
that array may be reallocated, thus leaving
word pointing to unallocated memory.
parent 22c0b1f0
......@@ -2056,11 +2056,11 @@ An hour of storm to place
The sculpture of these granite seams,
Upon a woman s face. E. J. Pratt (1882 1964)
', to_tsquery('granite&sea'));
headline
----------------------------------------------------------------------------------------------
<b>sea</b> an hour one night
An hour of storm to place
The sculpture of these <b>granite</b>
headline
--------------------------------------------------------------------------------------------------
<b>sea</b> a thousand years,
A thousand years to trace
The <b>granite</b> features of this cliff
(1 row)
......
......@@ -360,7 +360,7 @@ hlfinditem(HLPRSTEXT * prs, QUERYTYPE * query, char *buf, int buflen)
{
int i;
ITEM *item = GETQUERY(query);
HLWORD *word = &(prs->words[prs->curwords - 1]);
HLWORD *word;
while (prs->curwords + query->size >= prs->lenwords)
{
......@@ -368,6 +368,7 @@ hlfinditem(HLPRSTEXT * prs, QUERYTYPE * query, char *buf, int buflen)
prs->words = (HLWORD *) repalloc((void *) prs->words, prs->lenwords * sizeof(HLWORD));
}
word = &(prs->words[prs->curwords - 1]);
for (i = 0; i < query->size; i++)
{
if (item->type == VAL && item->length == buflen && strncmp(GETOPERAND(query) + item->distance, buf, buflen) == 0)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment