Skip to content
Snippets Groups Projects
Commit 90885420 authored by Tom Lane's avatar Tom Lane
Browse files

Avoid core dump on empty thesaurus dictionary.

Per report from Robert Gravsjö.
parent bb1e8bea
No related branches found
No related tags found
No related merge requests found
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/tsearch/dict_thesaurus.c,v 1.14 2009/07/16 06:33:44 petere Exp $ * $PostgreSQL: pgsql/src/backend/tsearch/dict_thesaurus.c,v 1.15 2009/11/30 16:38:31 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -57,8 +57,8 @@ typedef struct ...@@ -57,8 +57,8 @@ typedef struct
/* Array to search lexeme by exact match */ /* Array to search lexeme by exact match */
TheLexeme *wrds; TheLexeme *wrds;
int nwrds; int nwrds; /* current number of words */
int ntwrds; int ntwrds; /* allocated array length */
/* /*
* Storage of substituted result, n-th element is for n-th expression * Storage of substituted result, n-th element is for n-th expression
...@@ -298,7 +298,6 @@ thesaurusRead(char *filename, DictThesaurus *d) ...@@ -298,7 +298,6 @@ thesaurusRead(char *filename, DictThesaurus *d)
static TheLexeme * static TheLexeme *
addCompiledLexeme(TheLexeme *newwrds, int *nnw, int *tnm, TSLexeme *lexeme, LexemeInfo *src, uint16 tnvariant) addCompiledLexeme(TheLexeme *newwrds, int *nnw, int *tnm, TSLexeme *lexeme, LexemeInfo *src, uint16 tnvariant)
{ {
if (*nnw >= *tnm) if (*nnw >= *tnm)
{ {
*tnm *= 2; *tnm *= 2;
...@@ -453,7 +452,8 @@ compileTheLexeme(DictThesaurus *d) ...@@ -453,7 +452,8 @@ compileTheLexeme(DictThesaurus *d)
pfree(d->wrds[i].entries); pfree(d->wrds[i].entries);
} }
pfree(d->wrds); if (d->wrds)
pfree(d->wrds);
d->wrds = newwrds; d->wrds = newwrds;
d->nwrds = nnw; d->nwrds = nnw;
d->ntwrds = tnm; d->ntwrds = tnm;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment