summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGreg Beaver <cellog@php.net>2008-08-31 06:47:38 +0000
committerGreg Beaver <cellog@php.net>2008-08-31 06:47:38 +0000
commiteec1cf5f0a57e7b93a6b3827e3efd387873f11eb (patch)
tree7e86b8545b102033648423c1607a6ee33e64ccae
parente30bf5af3b62e64015237646b8f6641f6629f9c9 (diff)
downloadphp-git-eec1cf5f0a57e7b93a6b3827e3efd387873f11eb.tar.gz
merge from pecl/phar strlen optimizations
-rwxr-xr-xext/phar/phar.phar6
-rw-r--r--ext/phar/stream.c8
2 files changed, 8 insertions, 6 deletions
diff --git a/ext/phar/phar.phar b/ext/phar/phar.phar
index ab748ede1a..e19dfb5ad2 100755
--- a/ext/phar/phar.phar
+++ b/ext/phar/phar.phar
@@ -1171,8 +1171,8 @@ spl_autoload_register('command_autoload');
new PharCommand($argc, $argv);
__HALT_COMPILER(); ?>
-6
-
+6
+
²䂱Js*,8W?!~븅YBs.cod!¨`wLȹB.[as\
bnN
@@ -1229,4 +1229,4 @@ t߭PDG Jl/
UN _!@"ڐFOLG3@=DMbP5 aY[⎬mv O<])soSjZ/]vǽT%:)c v]Ebӛ*=KO))-]L7ͨ. z.j?8T,:ahg
H#[T5$޶Lz4ʃ )Lux;;TMe,{}4b,]@u83n\W 藵tEGxӟ᧾]~fI|P
j7l1PHiGH5$/rІ~ѐgzpu;9䂯;pUT\ }{kCzt8Ǜ6.Z^IwN$_@PʕB
-P3C
+P3C
diff --git a/ext/phar/stream.c b/ext/phar/stream.c
index e6408ff669..5ec6e2a86d 100644
--- a/ext/phar/stream.c
+++ b/ext/phar/stream.c
@@ -676,6 +676,7 @@ static int phar_wrapper_unlink(php_stream_wrapper *wrapper, char *url, int optio
{
php_url *resource;
char *internal_file, *error;
+ int internal_file_len;
phar_entry_data *idata;
phar_archive_data **pphar;
uint host_len;
@@ -701,7 +702,7 @@ static int phar_wrapper_unlink(php_stream_wrapper *wrapper, char *url, int optio
host_len = strlen(resource->host);
phar_request_initialize(TSRMLS_C);
- if (FAILURE == zend_hash_find(&(PHAR_GLOBALS->phar_fname_map), resource->host, strlen(resource->host), (void **) &pphar)) {
+ if (FAILURE == zend_hash_find(&(PHAR_GLOBALS->phar_fname_map), resource->host, host_len, (void **) &pphar)) {
pphar = NULL;
}
if (PHAR_G(readonly) && (!pphar || !(*pphar)->is_data)) {
@@ -712,7 +713,8 @@ static int phar_wrapper_unlink(php_stream_wrapper *wrapper, char *url, int optio
/* need to copy to strip leading "/", will get touched again */
internal_file = estrdup(resource->path + 1);
- if (FAILURE == phar_get_entry_data(&idata, resource->host, strlen(resource->host), internal_file, strlen(internal_file), "r", 0, &error, 1 TSRMLS_CC)) {
+ internal_file_len = strlen(internal_file);
+ if (FAILURE == phar_get_entry_data(&idata, resource->host, host_len, internal_file, internal_file_len, "r", 0, &error, 1 TSRMLS_CC)) {
/* constraints of fp refcount were not met */
if (error) {
php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "unlink of \"%s\" failed: %s", url, error);
@@ -829,7 +831,7 @@ static int phar_wrapper_rename(php_stream_wrapper *wrapper, char *url_from, char
host_len = strlen(resource_from->host);
- if (SUCCESS != phar_get_archive(&phar, resource_from->host, strlen(resource_from->host), NULL, 0, &error TSRMLS_CC)) {
+ if (SUCCESS != phar_get_archive(&phar, resource_from->host, host_len, NULL, 0, &error TSRMLS_CC)) {
php_url_free(resource_from);
php_url_free(resource_to);
php_error_docref(NULL TSRMLS_CC, E_WARNING, "phar error: cannot rename \"%s\" to \"%s\": %s", url_from, url_to, error);