diff options
author | Meik Sievertsen <acydburn@phpbb.com> | 2008-06-09 17:44:32 +0000 |
---|---|---|
committer | Meik Sievertsen <acydburn@phpbb.com> | 2008-06-09 17:44:32 +0000 |
commit | cc6d084368a260be9e0c44d3d09da46c250ea776 (patch) | |
tree | 8f1223d6c1dd1eb6b25a3681a25cb7b730fe3a16 /phpBB/includes/functions_compress.php | |
parent | f5c7243cf388307ecc2ea73f291b484f102ccd30 (diff) | |
download | forums-cc6d084368a260be9e0c44d3d09da46c250ea776.tar forums-cc6d084368a260be9e0c44d3d09da46c250ea776.tar.gz forums-cc6d084368a260be9e0c44d3d09da46c250ea776.tar.bz2 forums-cc6d084368a260be9e0c44d3d09da46c250ea776.tar.xz forums-cc6d084368a260be9e0c44d3d09da46c250ea776.zip |
check if folder is not empty (may happen for absolute paths). Thanks paul
git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@8639 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/functions_compress.php')
-rw-r--r-- | phpBB/includes/functions_compress.php | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/phpBB/includes/functions_compress.php b/phpBB/includes/functions_compress.php index 852f1c967a..021079deef 100644 --- a/phpBB/includes/functions_compress.php +++ b/phpBB/includes/functions_compress.php @@ -179,7 +179,7 @@ class compress_zip extends compress * Extract archive */ function extract($dst) - { + { // Loop the file, looking for files and folders $dd_try = false; rewind($this->fp); @@ -215,6 +215,12 @@ class compress_zip extends compress // Create and folders and subfolders if they do not exist foreach ($folders as $folder) { + $folder = trim($folder); + if (!$folder) + { + continue; + } + $str = (!empty($str)) ? $str . '/' . $folder : $folder; if (!is_dir($str)) { @@ -238,6 +244,12 @@ class compress_zip extends compress // Create and folders and subfolders if they do not exist foreach ($folders as $folder) { + $folder = trim($folder); + if (!$folder) + { + continue; + } + $str = (!empty($str)) ? $str . '/' . $folder : $folder; if (!is_dir($str)) { @@ -267,7 +279,7 @@ class compress_zip extends compress // Not compressed fwrite($fp, $content); break; - + case 8: // Deflate fwrite($fp, gzinflate($content, $data['uc_size'])); @@ -278,7 +290,7 @@ class compress_zip extends compress fwrite($fp, bzdecompress($content)); break; } - + fclose($fp); break; @@ -288,11 +300,11 @@ class compress_zip extends compress // This case should simply never happen.. but it does exist.. case "\x50\x4b\x05\x06": break 2; - + // 'Packed to Removable Disk', ignore it and look for the next signature... case 'PK00': continue 2; - + // We have encountered a header that is weird. Lets look for better data... default: if (!$dd_try) @@ -519,6 +531,12 @@ class compress_tar extends compress // Create and folders and subfolders if they do not exist foreach ($folders as $folder) { + $folder = trim($folder); + if (!$folder) + { + continue; + } + $str = (!empty($str)) ? $str . '/' . $folder : $folder; if (!is_dir($str)) { @@ -540,6 +558,12 @@ class compress_tar extends compress // Create and folders and subfolders if they do not exist foreach ($folders as $folder) { + $folder = trim($folder); + if (!$folder) + { + continue; + } + $str = (!empty($str)) ? $str . '/' . $folder : $folder; if (!is_dir($str)) { |