[BUGFIX] Avoid memory leak during file searches 95/46395/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:04:22 +0000 (20:04 +0100)
commit72a7312ce91487256695d6c461e4c4dff52916be
treee2cdf006885bd3efb2aed3a13246e01b6da77d45
parent9173bea01c8a53b774342f004e6e221da99a6d02
[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/46395
Reviewed-by: Frank Naegler <frank.naegler@typo3.org>
Reviewed-by: Daniel Maier <dani-maier@gmx.de>
Tested-by: Daniel Maier <dani-maier@gmx.de>
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