pgsql: Defend against stack overrun in a few more places.
От | Tom Lane |
---|---|
Тема | pgsql: Defend against stack overrun in a few more places. |
Дата | |
Msg-id | E1oQtm6-0011Jt-4j@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Defend against stack overrun in a few more places. SplitToVariants() in the ispell code, lseg_inside_poly() in geo_ops.c, and regex_selectivity_sub() in selectivity estimation could recurse until stack overflow; fix by adding check_stack_depth() calls. So could next() in the regex compiler, but that case is better fixed by converting its tail recursion to a loop. (We probably get better code that way too, since next() can now be inlined into its sole caller.) There remains a reachable stack overrun in the Turkish stemmer, but we'll need some advice from the Snowball people about how to fix that. Per report from Egor Chindyaskin and Alexander Lakhin. These mistakes are old, so back-patch to all supported branches. Richard Guo and Tom Lane Discussion: https://postgr.es/m/1661334672.728714027@f473.i.mail.ru Branch ------ REL_11_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/310d734efb3bb541953893a800bab4ed1b968908 Modified Files -------------- src/backend/regex/regc_lex.c | 5 +++-- src/backend/tsearch/spell.c | 4 ++++ src/backend/utils/adt/geo_ops.c | 3 +++ src/backend/utils/adt/selfuncs.c | 3 +++ 4 files changed, 13 insertions(+), 2 deletions(-)
В списке pgsql-committers по дате отправления: