Actions
Bug #77645
closedClosures in SignalSlot\Dispatcher can cause troubles
Status:
Closed
Priority:
Should have
Assignee:
-
Category:
-
Target version:
-
Start date:
2016-08-26
Due date:
% Done:
100%
Estimated time:
TYPO3 Version:
6.2
PHP Version:
Tags:
Complexity:
Is Regression:
No
Sprint Focus:
Description
Hi,
While connecting a quick SignalSlot to the Dispatcher using closure this can cause page rendering problems.
How to reproduce:
\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Extbase\\SignalSlot\\Dispatcher')->connect( TYPO3\CMS\Core\Tree\TableConfiguration\TableConfiguration\DatabaseTreeDataProvider::class, \TYPO3\CMS\Core\Tree\TableConfiguration\DatabaseTreeDataProvider::SIGNAL_PostProcessTreeData, function(DatabaseTreeDataProvider $dataProvider, $treeData) { // my quick changes } );
Now add a Text with Image and an plugin which is an USER_INT.
The text with image load an FAL image in cObj, the USER_INT tries to serialize the cObj.
This results in the error: Serialization of 'Closure' is not allowed
I do not mind solving this issue myself, however I don't know on what level I should fix this.
1) Make sure cObj is serializable (using $this->cObj->setCurrentFile(null);
at the end of \TYPO3\CMS\CssStyledContent\Controller\CssStyledContentController::render_textpic()
)
2) Make sure Closures are not allowed in signal slots (using validation in connect())
Kind regards,
Benjamin
Actions