From: Seiji Masugata Date: Fri, 25 Aug 2006 16:26:50 +0000 (+0000) Subject: added configure option --disable-mbregex-backtrack. X-Git-Tag: php-5.2.0RC3~56 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=100742f7a2c5f6ff076c868d3fdb95feb6e9063a;p=php added configure option --disable-mbregex-backtrack. --- diff --git a/ext/mbstring/config.m4 b/ext/mbstring/config.m4 index 49e0a86171..638f910a03 100644 --- a/ext/mbstring/config.m4 +++ b/ext/mbstring/config.m4 @@ -101,6 +101,11 @@ esac fi AC_DEFINE([HAVE_MBREGEX], 1, [whether to have multibyte regex support]) + + if test "$PHP_MBREGEX_BACKTRACK" != "no"; then + AC_DEFINE([HAVE_MBREGEX_BACKTRACK],1,[whether to check multibyte regex backtrack]) + fi + PHP_MBSTRING_ADD_CFLAG([-DNOT_RUBY]) PHP_MBSTRING_ADD_BUILD_DIR([oniguruma]) PHP_MBSTRING_ADD_BUILD_DIR([oniguruma/enc]) @@ -278,6 +283,9 @@ PHP_ARG_ENABLE(mbstring, whether to enable multibyte string support, PHP_ARG_ENABLE([mbregex], [whether to enable multibyte regex support], [ --disable-mbregex MBSTRING: Disable multibyte regex support], yes, no) +PHP_ARG_ENABLE([mbregex_backtrack], [whether to check multibyte regex backtrack], +[ --disable-mbregex-backtrack MBSTRING: Disable multibyte regex backtrack check], yes, no) + PHP_ARG_WITH(libmbfl, [for external libmbfl], [ --with-libmbfl[=DIR] MBSTRING: Use external libmbfl. DIR is the libmbfl install prefix. If DIR is not set, the bundled libmbfl will be used], no, no) diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c index bacc7166af..457877c7dd 100644 --- a/ext/mbstring/mbstring.c +++ b/ext/mbstring/mbstring.c @@ -1050,6 +1050,11 @@ PHP_MINFO_FUNCTION(mbstring) sprintf(buf, "%d.%d.%d", ONIGURUMA_VERSION_MAJOR,ONIGURUMA_VERSION_MINOR,ONIGURUMA_VERSION_TEENY); php_info_print_table_row(2, "Multibyte regex (oniguruma) version", buf); +#ifdef HAVE_MBREGEX_BACKTRACK + php_info_print_table_row(2, "Multibyte regex (oniguruma) backtrack check", "On"); +#else /* HAVE_MBREGEX_BACKTRACK */ + php_info_print_table_row(2, "Multibyte regex (oniguruma) backtrack check", "Off"); +#endif /* HAVE_MBREGEX_BACKTRACK */ } #endif php_info_print_table_end(); diff --git a/ext/mbstring/oniguruma/regcomp.c b/ext/mbstring/oniguruma/regcomp.c index 507faee8e2..7bc891cf0b 100644 --- a/ext/mbstring/oniguruma/regcomp.c +++ b/ext/mbstring/oniguruma/regcomp.c @@ -186,6 +186,8 @@ add_opcode(regex_t* reg, int opcode) return 0; } +#ifdef USE_COMBINATION_EXPLOSION_CHECK + static int add_state_check_num(regex_t* reg, int num) { @@ -194,6 +196,7 @@ add_state_check_num(regex_t* reg, int num) BBUF_ADD(reg, &n, SIZE_STATE_CHECK_NUM); return 0; } +#endif /* USE_COMBINATION_EXPLOSION_CHECK */ static int add_rel_addr(regex_t* reg, int addr) diff --git a/ext/mbstring/oniguruma/regint.h b/ext/mbstring/oniguruma/regint.h index c9f494e44e..aa293be459 100644 --- a/ext/mbstring/oniguruma/regint.h +++ b/ext/mbstring/oniguruma/regint.h @@ -59,7 +59,9 @@ /* #define USE_UNICODE_FULL_RANGE_CTYPE */ /* --> move to regenc.h */ #define USE_NAMED_GROUP #define USE_SUBEXP_CALL +#ifdef HAVE_MBREGEX_BACKTRACK #define USE_COMBINATION_EXPLOSION_CHECK /* (X*)* */ +#endif /* HAVE_MBREGEX_BACKTRACK */ #define USE_INFINITE_REPEAT_MONOMANIAC_MEM_STATUS_CHECK /* /(?:()|())*\2/ */ #define USE_NEWLINE_AT_END_OF_STRING_HAS_EMPTY_LINE /* /\n$/ =~ "\n" */ #define USE_WARNING_REDUNDANT_NESTED_REPEAT_OPERATOR