Skip to content

Commit

Permalink
Fix bug 54866
Browse files Browse the repository at this point in the history
  • Loading branch information
rlerdorf committed May 19, 2011
1 parent 81eaa0c commit ef2357c
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions TSRM/tsrm_virtual_cwd.c
Original file line number Diff line number Diff line change
Expand Up @@ -617,7 +617,13 @@ CWD_API void realpath_cache_del(const char *path, int path_len TSRMLS_DC) /* {{{
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 {
Expand Down Expand Up @@ -692,7 +698,13 @@ static inline realpath_cache_bucket* realpath_cache_find(const char *path, int p
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) {
Expand Down

0 comments on commit ef2357c

Please sign in to comment.