fix segfault in Phar::webPhar() if file is in root directory, found in frontcontroller16.phpt

This commit is contained in:
Greg Beaver 2008-01-12 22:16:00 +00:00
parent 27fa0688cc
commit 56e84a390c

View File

@ -306,7 +306,11 @@ static int phar_file_action(phar_entry_data *phar, char *mime_type, int code, ch
PHAR_G(cwd_len) = 0;
if (zend_hash_add(&EG(included_files), file_handle.opened_path, strlen(file_handle.opened_path)+1, (void *)&dummy, sizeof(int), NULL)==SUCCESS) {
if ((cwd = strrchr(entry, '/'))) {
if (entry[0] == '/') {
if (entry == cwd) {
/* root directory */
PHAR_G(cwd_len) = 0;
PHAR_G(cwd) = NULL;
} else if (entry[0] == '/') {
PHAR_G(cwd_len) = cwd - (entry + 1);
PHAR_G(cwd) = estrndup(entry + 1, PHAR_G(cwd_len));
} else {