From: Greg Beaver Date: Mon, 25 Feb 2008 04:30:55 +0000 (+0000) Subject: add little fix to phar_mount_entry to ensure path separators are unix-based on windows X-Git-Tag: RELEASE_2_0_0a1~336 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0503140256c21dad3f1c1f82409fee67664034fb;p=php add little fix to phar_mount_entry to ensure path separators are unix-based on windows --- diff --git a/ext/phar/util.c b/ext/phar/util.c index 77c0b59080..2b957d7128 100644 --- a/ext/phar/util.c +++ b/ext/phar/util.c @@ -154,6 +154,9 @@ int phar_mount_entry(phar_archive_data *phar, char *filename, int filename_len, entry.phar = phar; entry.filename = estrndup(path, path_len); +#ifdef PHP_WIN32 + phar_unixify_path_separators(entry.filename, path_len); +#endif entry.filename_len = path_len; if (strstr(filename, "phar://")) { entry.link = estrndup(filename, filename_len); @@ -190,7 +193,7 @@ int phar_mount_entry(phar_archive_data *phar, char *filename, int filename_len, } if (ssb.sb.st_mode & S_IFDIR) { entry.is_dir = 1; - if (SUCCESS != zend_hash_add(&phar->mounted_dirs, path, path_len, (void *)&path, sizeof(char *), NULL)) { + if (SUCCESS != zend_hash_add(&phar->mounted_dirs, entry.filename, path_len, (void *)&(entry.filename), sizeof(char *), NULL)) { /* directory already mounted */ efree(entry.link); efree(entry.filename); @@ -201,7 +204,7 @@ int phar_mount_entry(phar_archive_data *phar, char *filename, int filename_len, entry.uncompressed_filesize = entry.compressed_filesize = ssb.sb.st_size; } entry.flags = ssb.sb.st_mode; - if (SUCCESS == zend_hash_add(&phar->manifest, path, path_len, (void*)&entry, sizeof(phar_entry_info), NULL)) { + if (SUCCESS == zend_hash_add(&phar->manifest, entry.filename, path_len, (void*)&entry, sizeof(phar_entry_info), NULL)) { return SUCCESS; } efree(entry.link);