Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Blocker
-
Resolution: Fixed
-
Affects Version/s: 1.8.2, 1.9, 2.0
-
Labels:None
-
Affected Branches:MOODLE_18_STABLE, MOODLE_19_STABLE, MOODLE_20_STABLE
-
Fixed Branches:MOODLE_16_STABLE, MOODLE_17_STABLE, MOODLE_18_STABLE, MOODLE_19_STABLE, MOODLE_20_STABLE
Description
The backup_copy_dir and delete_dir_contents functions in the backup/lib.php file do not work correctly if there is a directory (or file?) name that evaluates to false (eg. "0"). This will result in files not being copied for backup or deleted correctly. In those functions, there is a while loop that uses
$file=readdir($dir)
as its condition which can return valid files that evaluate to false. It is handled correctly in other files with something like
false !== ($file = readdir($handle))
There are other occurrences in the code of this bug including admin/delete.php: delete_subdirectories and backup/bb/restore_bb.php: get_subdirs. There may be others as well.
Issue Links
| This issue will help resolve: | ||||
| MDL-8605 | Reduce the number of dirs under the users file area |
|
|
|
Hi Scott,
but that only can happen if we are talking about relative paths (where a "0" dir name can have the explained effect).... but all those Moodle functions are running against absolute paths (where $CFG->dataroot is prepended).
So, perhaps it's impossible in real life?
Thanks and ciao