]> granicus.if.org Git - php/commitdiff
Avoid strlen call
authorAnatol Belski <ab@php.net>
Tue, 19 Dec 2017 12:12:20 +0000 (13:12 +0100)
committerAnatol Belski <ab@php.net>
Tue, 19 Dec 2017 14:42:34 +0000 (15:42 +0100)
ext/opcache/ZendAccelerator.c
ext/opcache/zend_accelerator_blacklist.c
ext/opcache/zend_accelerator_blacklist.h

index be1519214801d78b4c63151c4855ba7fd05c2f09..1b1fbf9fcf105f571b5f32da3263183bd1831031 100644 (file)
@@ -1621,7 +1621,7 @@ static zend_persistent_script *opcache_compile_file(zend_file_handle *file_handl
     }
 
        /* check blacklist right after ensuring that file was opened */
-       if (file_handle->opened_path && zend_accel_blacklist_is_blacklisted(&accel_blacklist, ZSTR_VAL(file_handle->opened_path))) {
+       if (file_handle->opened_path && zend_accel_blacklist_is_blacklisted(&accel_blacklist, ZSTR_VAL(file_handle->opened_path), ZSTR_LEN(file_handle->opened_path))) {
                ZCSG(blacklist_misses)++;
                *op_array_p = accelerator_orig_compile_file(file_handle, type);
                return NULL;
index 8b8c9b0d3752f8bd450b51c334d4b649e8b62944..6d3a10e2b16f201815e0de2fe7c6ff8a2ee4a14c 100644 (file)
@@ -343,7 +343,7 @@ void zend_accel_blacklist_load(zend_blacklist *blacklist, char *filename)
 }
 #endif
 
-zend_bool zend_accel_blacklist_is_blacklisted(zend_blacklist *blacklist, char *verify_path)
+zend_bool zend_accel_blacklist_is_blacklisted(zend_blacklist *blacklist, char *verify_path, size_t verify_path_len)
 {
        int ret = 0;
        zend_regexp_list *regexp_list_it = blacklist->regexp_list;
@@ -358,7 +358,7 @@ zend_bool zend_accel_blacklist_is_blacklisted(zend_blacklist *blacklist, char *v
                        /* Alloc failed, but next one could still come through and match. */
                        continue;
                }
-               int rc = pcre2_match(regexp_list_it->re, (PCRE2_SPTR)verify_path, strlen(verify_path), 0, 0, match_data, mctx);
+               int rc = pcre2_match(regexp_list_it->re, (PCRE2_SPTR)verify_path, verify_path_len, 0, 0, match_data, mctx);
                if (rc >= 0) {
                        ret = 1;
                        php_pcre_free_match_data(match_data);
index 863f9ed16530bb975aefcfbd2e8434310422a947..958f4a72fffb0364e644f7858acea2c89a1450b4 100644 (file)
@@ -45,7 +45,7 @@ void zend_accel_blacklist_init(zend_blacklist *blacklist);
 void zend_accel_blacklist_shutdown(zend_blacklist *blacklist);
 
 void zend_accel_blacklist_load(zend_blacklist *blacklist, char *filename);
-zend_bool zend_accel_blacklist_is_blacklisted(zend_blacklist *blacklist, char *verify_path);
+zend_bool zend_accel_blacklist_is_blacklisted(zend_blacklist *blacklist, char *verify_path, size_t verify_path_len);
 void zend_accel_blacklist_apply(zend_blacklist *blacklist, blacklist_apply_func_arg_t func, void *argument);
 
 #endif /* ZEND_ACCELERATOR_BLACKLIST_H */