summaryrefslogtreecommitdiff
path: root/sql/item_cmpfunc.h
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2017-05-11 19:48:42 +0200
committerSergei Golubchik <serg@mariadb.org>2017-05-15 22:23:10 +0200
commit52aa200919b1fd9357c05bcdfc66a42e51f242b3 (patch)
tree7c3c15b54110084a64e6f5f07e70de3016b1b6ae /sql/item_cmpfunc.h
parent602b5e4c498ad2e2d045adfa4fd1478ac437582a (diff)
downloadmariadb-git-52aa200919b1fd9357c05bcdfc66a42e51f242b3.tar.gz
MDEV-12420 max_recursive_iterations did not prevent a stack-overflow and segfault
post-review fixes * move pcre-specific variable out of mysys * don't use current_thd * move a commonly used macro to my_sys.h * remove new sysvar
Diffstat (limited to 'sql/item_cmpfunc.h')
-rw-r--r--sql/item_cmpfunc.h11
1 files changed, 3 insertions, 8 deletions
diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h
index b5b94888330..17ad1bd8c7d 100644
--- a/sql/item_cmpfunc.h
+++ b/sql/item_cmpfunc.h
@@ -25,7 +25,6 @@
#include "thr_malloc.h" /* sql_calloc */
#include "item_func.h" /* Item_int_func, Item_bool_func */
-long check_stack_available(long margin, uchar *dummy);
#define PCRE_STATIC 1 /* Important on Windows */
#include "pcre.h" /* pcre header file */
@@ -1577,15 +1576,11 @@ public:
m_library_charset(&my_charset_utf8_general_ci),
m_subpatterns_needed(0)
{
-#ifndef EMBEDDED_LIBRARY
- uchar dummy;
- m_pcre_extra.flags= PCRE_EXTRA_MATCH_LIMIT_RECURSION;
- m_pcre_extra.match_limit_recursion= check_stack_available(100, &dummy) / my_pcre_frame_size;
-#else
- m_pcre_extra.flags= 0L;
-#endif
+ m_pcre_extra.flags= PCRE_EXTRA_MATCH_LIMIT_RECURSION;
+ m_pcre_extra.match_limit_recursion= 100L;
}
int default_regex_flags();
+ void set_recursion_limit(THD *);
void init(CHARSET_INFO *data_charset, int extra_flags, uint nsubpatterns)
{
m_library_flags= default_regex_flags() | extra_flags |