]> granicus.if.org Git - php/commitdiff
Add fallbacks for older oniguruma versions
authorStanislav Malyshev <stas@php.net>
Sat, 30 Mar 2019 21:52:04 +0000 (14:52 -0700)
committerStanislav Malyshev <stas@php.net>
Sun, 31 Mar 2019 06:18:33 +0000 (23:18 -0700)
ext/mbstring/mbstring.c
ext/mbstring/php_mbregex.c

index 36b6c478b84c81533861b97eb9c7a97c55cb97be..28ea4bd0569610fc1976873ee621c1c69592481a 100644 (file)
 #include "php_onig_compat.h"
 #include <oniguruma.h>
 #undef UChar
+#if ONIGURUMA_VERSION_INT < 60800
+typedef void OnigMatchParam;
+#define onig_new_match_param() (NULL)
+#define onig_initialize_match_param(x)
+#define onig_set_match_stack_limit_size_of_match_param(x, y)
+#define onig_free_match_param(x)
+#define onig_search_with_param(reg, str, end, start, range, region, option, mp) \
+               onig_search(reg, str, end, start, range, region, option)
+#define onig_match_with_param(re, str, end, at, region, option, mp) \
+               onig_match(re, str, end, at, region, option)
+#endif
 #elif HAVE_PCRE || HAVE_BUNDLED_PCRE
 #include "ext/pcre/php_pcre.h"
 #endif
@@ -1030,7 +1041,7 @@ static int _php_mb_match_regex(void *opaque, const char *str, size_t str_len)
        OnigMatchParam *mp = onig_new_match_param();
        int err;
        onig_initialize_match_param(mp);
-       if(MBSTRG(regex_stack_limit) > 0 && MBSTRG(regex_stack_limit) < UINT_MAX) {
+       if (!ZEND_LONG_UINT_OVFL(MBSTRG(regex_stack_limit))) {
                onig_set_match_stack_limit_size_of_match_param(mp, (unsigned int)MBSTRG(regex_stack_limit));
        }
        /* search */
index 10c7f3e272ca0448117c7b526f5d00f9983e4146..75b00f547cf87a6d390b242d281a287cc68c613c 100644 (file)
 #include <oniguruma.h>
 #undef UChar
 
+#if ONIGURUMA_VERSION_INT < 60800
+typedef void OnigMatchParam;
+#define onig_new_match_param() (NULL)
+#define onig_initialize_match_param(x)
+#define onig_set_match_stack_limit_size_of_match_param(x, y)
+#define onig_free_match_param(x)
+#define onig_search_with_param(reg, str, end, start, range, region, option, mp) \
+               onig_search(reg, str, end, start, range, region, option)
+#define onig_match_with_param(re, str, end, at, region, option, mp) \
+               onig_match(re, str, end, at, region, option)
+#endif
+
 ZEND_EXTERN_MODULE_GLOBALS(mbstring)
 
 struct _zend_mb_regex_globals {
@@ -856,7 +868,7 @@ static int _php_mb_onig_search(regex_t* reg, const OnigUChar* str, const OnigUCh
        OnigMatchParam *mp = onig_new_match_param();
        int err;
        onig_initialize_match_param(mp);
-       if(MBSTRG(regex_stack_limit) > 0 && MBSTRG(regex_stack_limit) < UINT_MAX) {
+       if (!ZEND_LONG_UINT_OVFL(MBSTRG(regex_stack_limit))) {
                onig_set_match_stack_limit_size_of_match_param(mp, (unsigned int)MBSTRG(regex_stack_limit));
        }
        /* search */