adding a maximum of 20 for the DEPTH of delete in the file browser (may cause havoc in unknown case found in farafina server)

This commit is contained in:
Benjamin Sonntag 2017-08-08 15:20:46 +02:00
parent c8b3d1af2a
commit c7226c9010
1 changed files with 5 additions and 2 deletions

View File

@ -1100,12 +1100,15 @@ class m_bro {
* @param string $file Fichier ou dossier supprimer. * @param string $file Fichier ou dossier supprimer.
* @access private * @access private
*/ */
function _delete($file) { function _delete($file,$depth=0) {
global $err; global $err;
// permet d'effacer de nombreux fichiers // permet d'effacer de nombreux fichiers
@set_time_limit(0); @set_time_limit(0);
//chmod($file,0777); //chmod($file,0777);
$err->log("bro", "_delete($file)"); $err->log("bro", "_delete($file)");
if ($depth>20) {
$err->log("bro", "CANCELING _delete($file) TOO DEEP");
}
if (is_dir($file)) { if (is_dir($file)) {
$handle = opendir($file); $handle = opendir($file);
if (!$handle) { if (!$handle) {
@ -1114,7 +1117,7 @@ class m_bro {
} }
while (($filename = readdir($handle)) !== false) { while (($filename = readdir($handle)) !== false) {
if ($filename != "." && $filename != "..") { if ($filename != "." && $filename != "..") {
$this->_delete($file . "/" . $filename); $this->_delete($file . "/" . $filename,$depth+1);
} }
} }
closedir($handle); closedir($handle);