From: Teodor Sigaev Date: Tue, 10 Mar 2009 17:44:44 +0000 (+0000) Subject: Prevent recursion during parse of email-like string with multiple '@'. X-Git-Tag: REL8_2_13~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9424b22b5e9c538f9c57cd03f0a16a560b18864b;p=postgresql Prevent recursion during parse of email-like string with multiple '@'. Patch by Heikki Linnakangas --- diff --git a/contrib/tsearch2/wordparser/parser.c b/contrib/tsearch2/wordparser/parser.c index 19b2cfd228..c1a60e1099 100644 --- a/contrib/tsearch2/wordparser/parser.c +++ b/contrib/tsearch2/wordparser/parser.c @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/contrib/tsearch2/wordparser/parser.c,v 1.11.2.3 2009/03/02 15:13:17 teodor Exp $ */ +/* $PostgreSQL: pgsql/contrib/tsearch2/wordparser/parser.c,v 1.11.2.4 2009/03/10 17:44:44 teodor Exp $ */ #include "postgres.h" @@ -370,6 +370,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->lenbytelexeme; @@ -801,6 +803,7 @@ static TParserStateActionItem actionTPS_InHost[] = { }; static 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} };