Project

General

Profile

Bug #96332

Updated by Philipp Thiele over 2 years ago

(Found by testing powermail in TYPO3 version 11.) 

 In \TYPO3\CMS\Extbase\Mvc\Controller\ActionController->initializeActionMethodValidators() the validators are instantiated by calling 

 <pre><code class="php"> 
 $validatorInstance = GeneralUtility::makeInstance( 
                     $validatorDefinition['className'], 
                     $validatorDefinition['options'] 
                 ); 
 </code></pre> 

 however, when options for the given validator are empty, the empty array will get passed to GeneralUtility::makeInstance() as the first argument. Therefore, the check for empty constructorArguments will fail in GeneralUtility::makeInstance() and the class will wil not be instantiated by the DI container. 

 The options array should be unpacked before passing to GeneralUtility::makeInstance(), maybe like: 

 <pre><code class="php"> 
 $validatorInstance = GeneralUtility::makeInstance( 
                     $validatorDefinition['className'], 
                     ...$validatorDefinition['options'] 
                 ); 
 </code></pre>

Back