]> granicus.if.org Git - php/commitdiff
use memrchr/zend_memrchr instead of strrchr
authorAntony Dovgal <tony2001@php.net>
Tue, 8 Aug 2006 10:22:25 +0000 (10:22 +0000)
committerAntony Dovgal <tony2001@php.net>
Tue, 8 Aug 2006 10:22:25 +0000 (10:22 +0000)
ext/standard/string.c
ext/standard/tests/strings/strings001.phpt

index 6ab8e008c0693d79cd0b88a99f1285ef59b246f2..06a4c88eb2a4a2dee2cbd682e5b0e0421c80d28b 100644 (file)
@@ -1382,7 +1382,7 @@ PHP_FUNCTION(pathinfo)
                        php_basename(path, path_len, NULL, 0, &ret, &ret_len TSRMLS_CC);
                }
 
-               p = strrchr(ret, '.');
+               p = zend_memrchr(ret, '.', ret_len);
 
                if (p) {
                        idx = p - ret;
@@ -1399,7 +1399,7 @@ PHP_FUNCTION(pathinfo)
                        php_basename(path, path_len, NULL, 0, &ret, &ret_len TSRMLS_CC);
                }
 
-               p = strrchr(ret, '.');
+               p = zend_memrchr(ret, '.', ret_len);
 
                idx = p ? (p - ret) : ret_len;
                add_assoc_stringl(tmp, "filename", ret, idx, 1);
@@ -1871,10 +1871,10 @@ PHP_FUNCTION(strrchr)
        convert_to_string_ex(haystack);
 
        if (Z_TYPE_PP(needle) == IS_STRING) {
-               found = strrchr(Z_STRVAL_PP(haystack), *Z_STRVAL_PP(needle));
+               found = zend_memrchr(Z_STRVAL_PP(haystack), *Z_STRVAL_PP(needle), Z_STRLEN_PP(haystack));
        } else {
                convert_to_long_ex(needle);
-               found = strrchr(Z_STRVAL_PP(haystack), (char) Z_LVAL_PP(needle));
+               found = zend_memrchr(Z_STRVAL_PP(haystack), (char) Z_LVAL_PP(needle), Z_STRLEN_PP(haystack));
        }
 
        if (found) {
index 87f8489b8a48b083b0b4d31d0ec0e6ce256a5240..70b709295dbfd5b94e25756f33e447f6a2cf2725 100644 (file)
@@ -9,4 +9,4 @@ var_dump(strrchr($s," nic"));
 ?>
 --EXPECTREGEX--
 string\(18\) \"nica\x00turska panica\"
-string\(19\) \" nica\x00turska panica\"
+string\(7\) \" panica\"