cvs: /php4 php_virtual_cwd.c

From: Date: Wed, 05 Apr 2000 20:50:21 +0000
Subject: cvs: /php4 php_virtual_cwd.c
Groups: php.version4 
Request: Send a blank email to php-version4+get-13186@lists.php.net to get a copy of this message
andi Wed Apr 5 13:50:21 2000 EDT Modified files: /php4 php_virtual_cwd.c Log: - More fixes Index: php4/php_virtual_cwd.c diff -u php4/php_virtual_cwd.c:1.26 php4/php_virtual_cwd.c:1.27 --- php4/php_virtual_cwd.c:1.26 Wed Apr 5 13:45:49 2000 +++ php4/php_virtual_cwd.c Wed Apr 5 13:49:51 2000 @@ -220,17 +220,20 @@ cwd_state *old_state; int ret = 0; int copy_amount = -1; + char *free_path; + zend_bool is_absolute = 0; if (path_length == 0) return (0); - path = estrndup(path, path_length); + free_path = path = estrndup(path, path_length); old_state = (cwd_state *) malloc(sizeof(cwd_state)); CWD_STATE_COPY(old_state, state); if (IS_ABSOLUTE_PATH(path, path_length)) { copy_amount = COPY_WHEN_ABSOLUTE; + is_absolute = 1; #ifdef ZEND_WIN32 } else if(IS_SLASH(path[0])) { copy_amount = 2; @@ -239,8 +242,13 @@ if (copy_amount != -1) { state->cwd = (char *) realloc(state->cwd, copy_amount + 1); - if (copy_amount) - memcpy(state->cwd, old_state->cwd, copy_amount); + if (copy_amount) { + if (is_absolute) { + memcpy(state->cwd, path, copy_amount); + } else { + memcpy(state->cwd, old_state->cwd, copy_amount); + } + } state->cwd[copy_amount] = '\0'; state->cwd_length = copy_amount; path += copy_amount; @@ -293,7 +301,7 @@ free(old_state); - efree(path); + efree(free_path); return (ret); }

« previous php.version4 (#13186) next »