svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/TSRM/tsrm_virtual_cwd.c branches/PHP_5_4/TSRM/tsrm_virtual_cwd.c
trunk/TSRM/tsrm_virtual_cwd.c
| From: | Rasmus Lerdorf | Date: | Thu, 19 May 2011 23:09:58 +0000 |
| Subject: | svn: /php/php-src/ branches/PHP_5_3/NEWS branches/PHP_5_3/TSRM/tsrm_virtual_cwd.c branches/PHP_5_4/TSRM/tsrm_virtual_cwd.c trunk/TSRM/tsrm_virtual_cwd.c |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-65001@lists.php.net to get a copy of this message | ||
rasmus Thu, 19 May 2011 23:09:58 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=311274
Log:
Fix bug 54866
Bug: http://bugs.php.net/54866 (Open) incorrect accounting
for realpath_cache_size
Changed paths:
U php/php-src/branches/PHP_5_3/NEWS
U php/php-src/branches/PHP_5_3/TSRM/tsrm_virtual_cwd.c
U php/php-src/branches/PHP_5_4/TSRM/tsrm_virtual_cwd.c
U php/php-src/trunk/TSRM/tsrm_virtual_cwd.c
Modified: php/php-src/branches/PHP_5_3/NEWS
===================================================================
--- php/php-src/branches/PHP_5_3/NEWS 2011-05-19 22:49:47 UTC (rev 311273)
+++ php/php-src/branches/PHP_5_3/NEWS 2011-05-19 23:09:58 UTC (rev 311274)
@@ -32,8 +32,9 @@
(tomas dot brastavicius at quantum dot lt, Pierrick)
. Fixed bug #48465 (sys_get_temp_dir() possibly inconsistent when using
TMPDIR on Windows). (Pierre)
+ . Fixed bug 54866 (incorrect accounting for realpath_cache_size) (Dustin Ward)
-- cURL
+- cURL:
. Added CURLINFO_REDIRECT_URL support. (Daniel Stenberg, Pierre)
. Added support for CURLOPT_MAX_RECV_SPEED_LARGE and
CURLOPT_MAX_SEND_SPEED_LARGE. FR #51815. (Pierrick)
Modified: php/php-src/branches/PHP_5_3/TSRM/tsrm_virtual_cwd.c
===================================================================
--- php/php-src/branches/PHP_5_3/TSRM/tsrm_virtual_cwd.c 2011-05-19 22:49:47 UTC (rev 311273)
+++ php/php-src/branches/PHP_5_3/TSRM/tsrm_virtual_cwd.c 2011-05-19 23:09:58 UTC (rev 311274)
@@ -629,7 +629,13 @@
memcmp(path, (*bucket)->path, path_len) == 0) {
realpath_cache_bucket *r = *bucket;
*bucket = (*bucket)->next;
- CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 +
r->realpath_len + 1;
+
+ /* if the pointers match then only subtract the length of the path */
+ if(r->path == r->realpath)
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) +
r->path_len + 1;
+ else
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) +
r->path_len + 1 + r->realpath_len + 1;
+
free(r);
return;
} else {
@@ -704,7 +710,13 @@
if (CWDG(realpath_cache_ttl) && (*bucket)->expires < t) {
realpath_cache_bucket *r = *bucket;
*bucket = (*bucket)->next;
- CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 +
r->realpath_len + 1;
+
+ /* if the pointers match then only subtract the length of the path */
+ if(r->path == r->realpath)
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) +
r->path_len + 1;
+ else
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) +
r->path_len + 1 + r->realpath_len + 1;
+
free(r);
} else if (key == (*bucket)->key && path_len == (*bucket)->path_len &&
memcmp(path, (*bucket)->path, path_len) == 0) {
Modified: php/php-src/branches/PHP_5_4/TSRM/tsrm_virtual_cwd.c
===================================================================
--- php/php-src/branches/PHP_5_4/TSRM/tsrm_virtual_cwd.c 2011-05-19 22:49:47 UTC (rev 311273)
+++ php/php-src/branches/PHP_5_4/TSRM/tsrm_virtual_cwd.c 2011-05-19 23:09:58 UTC (rev 311274)
@@ -617,7 +617,13 @@
memcmp(path, (*bucket)->path, path_len) == 0) {
realpath_cache_bucket *r = *bucket;
*bucket = (*bucket)->next;
- CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 +
r->realpath_len + 1;
+
+ /* if the pointers match then only subtract the length of the path */
+ if(r->path == r->realpath)
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) +
r->path_len + 1;
+ else
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) +
r->path_len + 1 + r->realpath_len + 1;
+
free(r);
return;
} else {
@@ -692,7 +698,13 @@
if (CWDG(realpath_cache_ttl) && (*bucket)->expires < t) {
realpath_cache_bucket *r = *bucket;
*bucket = (*bucket)->next;
- CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 +
r->realpath_len + 1;
+
+ /* if the pointers match then only subtract the length of the path */
+ if(r->path == r->realpath)
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) +
r->path_len + 1;
+ else
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) +
r->path_len + 1 + r->realpath_len + 1;
+
free(r);
} else if (key == (*bucket)->key && path_len == (*bucket)->path_len &&
memcmp(path, (*bucket)->path, path_len) == 0) {
Modified: php/php-src/trunk/TSRM/tsrm_virtual_cwd.c
===================================================================
--- php/php-src/trunk/TSRM/tsrm_virtual_cwd.c 2011-05-19 22:49:47 UTC (rev 311273)
+++ php/php-src/trunk/TSRM/tsrm_virtual_cwd.c 2011-05-19 23:09:58 UTC (rev 311274)
@@ -617,7 +617,13 @@
memcmp(path, (*bucket)->path, path_len) == 0) {
realpath_cache_bucket *r = *bucket;
*bucket = (*bucket)->next;
- CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 +
r->realpath_len + 1;
+
+ /* if the pointers match then only subtract the length of the path */
+ if(r->path == r->realpath)
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) +
r->path_len + 1;
+ else
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) +
r->path_len + 1 + r->realpath_len + 1;
+
free(r);
return;
} else {
@@ -692,7 +698,13 @@
if (CWDG(realpath_cache_ttl) && (*bucket)->expires < t) {
realpath_cache_bucket *r = *bucket;
*bucket = (*bucket)->next;
- CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 +
r->realpath_len + 1;
+
+ /* if the pointers match then only subtract the length of the path */
+ if(r->path == r->realpath)
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) +
r->path_len + 1;
+ else
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) +
r->path_len + 1 + r->realpath_len + 1;
+
free(r);
} else if (key == (*bucket)->key && path_len == (*bucket)->path_len &&
memcmp(path, (*bucket)->path, path_len) == 0) {