pgsql: Do stack-depth checking in all postmaster children.
От | Heikki Linnakangas |
---|---|
Тема | pgsql: Do stack-depth checking in all postmaster children. |
Дата | |
Msg-id | E1SGv3G-00037U-Ql@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Do stack-depth checking in all postmaster children. We used to only initialize the stack base pointer when starting up a regular backend, not in other processes. In particular, autovacuum workers can run arbitrary user code, and without stack-depth checking, infinite recursion in e.g an index expression will bring down the whole cluster. The comment about PL/Java using set_stack_base() is not yet true. As the code stands, PL/java still modifies the stack_base_ptr variable directly. However, it's been discussed in the PL/Java mailing list that it should be changed to use the function, because PL/Java is currently oblivious to the register stack used on Itanium. There's another issues with PL/Java, namely that the stack base pointer it sets is not really the base of the stack, it could be something close to the bottom of the stack. That's a separate issue that might need some further changes to this code, but that's a different story. Backpatch to all supported releases. Branch ------ REL8_3_STABLE Details ------- http://git.postgresql.org/pg/commitdiff/ddeac5dec10abe8b26d6a336f95ca593dcf3f3df Modified Files -------------- src/backend/postmaster/postmaster.c | 11 ++++++ src/backend/tcop/postgres.c | 61 ++++++++++++++++++++++++++++++---- src/include/miscadmin.h | 13 +++++++ 3 files changed, 77 insertions(+), 8 deletions(-)
В списке pgsql-committers по дате отправления: