Do not check to see if parents of folders outside of the Destination folder exist within the Archive extractors, unzip_file() will take care of that area. Fixes #13741
git-svn-id: http://svn.automattic.com/wordpress/trunk@15156 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
ce7395968d
commit
fe5e3d0fb6
|
@ -606,6 +606,8 @@ function _unzip_file_ziparchive($file, $to, $needed_dirs = array() ) {
|
||||||
// Check the parent folders of the folders all exist within the creation array.
|
// Check the parent folders of the folders all exist within the creation array.
|
||||||
if ( untrailingslashit($to) == $dir ) // Skip over the working directory, We know this exists (or will exist)
|
if ( untrailingslashit($to) == $dir ) // Skip over the working directory, We know this exists (or will exist)
|
||||||
continue;
|
continue;
|
||||||
|
if ( strpos($dir, $to) === false ) // If the directory is not within the working directory, Skip it
|
||||||
|
continue;
|
||||||
|
|
||||||
$parent_folder = dirname($dir);
|
$parent_folder = dirname($dir);
|
||||||
while ( !empty($parent_folder) && untrailingslashit($to) != $parent_folder && !in_array($parent_folder, $needed_dirs) ) {
|
while ( !empty($parent_folder) && untrailingslashit($to) != $parent_folder && !in_array($parent_folder, $needed_dirs) ) {
|
||||||
|
@ -685,6 +687,8 @@ function _unzip_file_pclzip($file, $to, $needed_dirs = array()) {
|
||||||
// Check the parent folders of the folders all exist within the creation array.
|
// Check the parent folders of the folders all exist within the creation array.
|
||||||
if ( untrailingslashit($to) == $dir ) // Skip over the working directory, We know this exists (or will exist)
|
if ( untrailingslashit($to) == $dir ) // Skip over the working directory, We know this exists (or will exist)
|
||||||
continue;
|
continue;
|
||||||
|
if ( strpos($dir, $to) === false ) // If the directory is not within the working directory, Skip it
|
||||||
|
continue;
|
||||||
|
|
||||||
$parent_folder = dirname($dir);
|
$parent_folder = dirname($dir);
|
||||||
while ( !empty($parent_folder) && untrailingslashit($to) != $parent_folder && !in_array($parent_folder, $needed_dirs) ) {
|
while ( !empty($parent_folder) && untrailingslashit($to) != $parent_folder && !in_array($parent_folder, $needed_dirs) ) {
|
||||||
|
|
Loading…
Reference in New Issue