[BUGFIX] Avoid memory leak during file searches 78/47078/2
authorAlexander Schnitzler <git@alexanderschnitzler.de>
Sat, 30 Jan 2016 13:10:11 +0000 (14:10 +0100)
committerChristian Kuhn <lolli@schwarzbu.ch>
Fri, 4 Mar 2016 19:05:56 +0000 (20:05 +0100)
commit8a433a95ad0d5478a0909dc01a1fe673d046e90c
tree0a37fceacf7d58ef5445bc023bf7da40d64600b1
parent96073c195ced0cd34cfdce7b9cfcb9442178c0c6
[BUGFIX] Avoid memory leak during file searches

During the file search in the file module the search result
is only limited to possibly matching folders. That itself
decreases the search over all files in a storage but it
still does not prevent memory leaks, where the result
of possible folders contain a decent amount of files.

Example:
fileadmin has a total of 10.000 files.
fileadmin has a subfolder called foo
fileadmin/foo holds a subset of 1000 files.
fileadmin/foo holds the file bar

A search for bar asks the database for all folders that contain
files with the matching identifier bar. As a result, only the
folder fileadmin/foo is returned which already excludes 9000
possible files.

Still, the resultset contains 1000 files, whoose name is
compared php-wise with the search string. During that
foreach loop each a file object with a decent memory
footprint will be created. This easily exceeds the
available memory limit.

Resolves: #73032
Releases: master, 7.6
Change-Id: Icf46e05274c671db344797d207afefc029c5fb5b
Reviewed-on: https://review.typo3.org/47078
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
typo3/sysext/core/Classes/Resource/FileRepository.php
typo3/sysext/core/Classes/Resource/Index/FileIndexRepository.php