diff options
author | Teodor Sigaev | 2009-03-10 17:32:14 +0000 |
---|---|---|
committer | Teodor Sigaev | 2009-03-10 17:32:14 +0000 |
commit | 3bb52b39f9430e7738dfcc629146fd6161df9ea5 (patch) | |
tree | 90ade2e10bc48b8043acaa47281db87c3f72ec19 | |
parent | de34f23757ede58eb2ee58ae9aa16d0d91614705 (diff) |
Prevent recursion during parse of email-like string with multiple '@'.
Patch by Heikki Linnakangas <[email protected]>
-rw-r--r-- | src/backend/tsearch/wparser_def.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/backend/tsearch/wparser_def.c b/src/backend/tsearch/wparser_def.c index ad98fa5722..74a8a61f34 100644 --- a/src/backend/tsearch/wparser_def.c +++ b/src/backend/tsearch/wparser_def.c @@ -620,6 +620,8 @@ p_ishost(TParser *prs) TParser *tmpprs = TParserInit(prs->str + prs->state->posbyte, prs->lenstr - prs->state->posbyte); int res = 0; + tmpprs->wanthost = true; + if (TParserGet(tmpprs) && tmpprs->type == HOST) { prs->state->posbyte += tmpprs->lenbytetoken; @@ -1070,6 +1072,7 @@ static const TParserStateActionItem actionTPS_InHost[] = { }; static const TParserStateActionItem actionTPS_InEmail[] = { + {p_isstophost, 0, A_POP, TPS_Null, 0, NULL}, {p_ishost, 0, A_BINGO | A_CLRALL, TPS_Base, EMAIL, NULL}, {NULL, 0, A_POP, TPS_Null, 0, NULL} }; |