From 6cd9a58480e37e11adf7fa7d406ba118d2a7e4e5 Mon Sep 17 00:00:00 2001 From: Teodor Sigaev Date: Mon, 4 Dec 2006 09:26:57 +0000 Subject: [PATCH] Fix core dump of ispell for case of non-successfull initialization. Previous versions aren't affected. Fix synonym dictionary init: string should be malloc'ed, not palloc'ed. Bug introduced recently while fixing lowerstr(). --- contrib/tsearch2/dict_syn.c | 6 +++--- contrib/tsearch2/ispell/spell.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/contrib/tsearch2/dict_syn.c b/contrib/tsearch2/dict_syn.c index cddbd47350..05cb110250 100644 --- a/contrib/tsearch2/dict_syn.c +++ b/contrib/tsearch2/dict_syn.c @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/contrib/tsearch2/dict_syn.c,v 1.10 2006/11/20 14:03:30 teodor Exp $ */ +/* $PostgreSQL: pgsql/contrib/tsearch2/dict_syn.c,v 1.11 2006/12/04 09:26:57 teodor Exp $ */ /* * ISpell interface @@ -132,8 +132,8 @@ syn_init(PG_FUNCTION_ARGS) continue; *end = '\0'; - d->syn[cur].in = lowerstr(starti); - d->syn[cur].out = lowerstr(starto); + d->syn[cur].in = strdup(lowerstr(starti)); + d->syn[cur].out = strdup(lowerstr(starto)); if (!(d->syn[cur].in && d->syn[cur].out)) { fclose(fin); diff --git a/contrib/tsearch2/ispell/spell.c b/contrib/tsearch2/ispell/spell.c index 66ccca4d07..c14012a6e7 100644 --- a/contrib/tsearch2/ispell/spell.c +++ b/contrib/tsearch2/ispell/spell.c @@ -1528,7 +1528,7 @@ NIFree(IspellDict * Conf) if (Conf->Spell) { for (i = 0; i < Conf->nspell; i++) - pfree(Conf->Spell[i]->word); + pfree(Conf->Spell[i]); pfree(Conf->Spell); } -- 2.40.0