Re: to_tsquery stack overflow - Mailing list pgsql-bugs

From Heikki Linnakangas
Subject Re: to_tsquery stack overflow
Date
Msg-id 46D6A68C.3030607@enterprisedb.com
Whole thread Raw
In response to to_tsquery stack overflow  ("Heikki Linnakangas" <heikki@enterprisedb.com>)
Responses Re: to_tsquery stack overflow
List pgsql-bugs
Heikki Linnakangas wrote:
> Passing a query with enough nested parenthesis in it causes a segfault.
> Attached is a handy little program to generate such a query, the actual
> query was too big to get through to the list.
>
> The problem seems to be unbounded recursion in the makepol function that
> converts the input query from infix to polish notation. An easy fix
> would be to just add a level parameter to makepol that's incremented on
> each recursion, and throw an error if it grows bigger than some safe
> limit. There might be a similar problem in TS_execute as well, if you
> can somehow pass a complex enough TSQuery to the system, perhaps with a
> custom libpq client and tsqueryrecv.

Actually, the right way to fix that is of course to call
check_stack_depth() in makepol and TS_execute.

--
  Heikki Linnakangas
  EnterpriseDB   http://www.enterprisedb.com

pgsql-bugs by date:

Previous
From: "Heikki Linnakangas"
Date:
Subject: to_tsquery stack overflow
Next
From: Fuminori Ido
Date:
Subject: Re: BUG #3589: /etc/init.d/postgresql reload doesn't reflect /etc/postgresql/postgresql.conf log_statement