[BUGFIX] Escape title, extension, description of scheduler tasks 14/25214/2
authorTomita Militaru <militarutomita@gmail.com>
Sat, 2 Nov 2013 22:14:14 +0000 (00:14 +0200)
committerStefan Neufeind <typo3.neufeind@speedpartner.de>
Fri, 8 Nov 2013 14:25:44 +0000 (15:25 +0100)
Properly escapes the title, description and extension of
displayed scheduler tasks

Resolves: #29179
Releases: 6.2, 6.1, 6.0, 4.7, 4.5
Change-Id: Ie03383f694863e435bfb96341226f8c78be426e5
Reviewed-on: https://review.typo3.org/25214
Reviewed-by: Stefan Neufeind
Tested-by: Stefan Neufeind
typo3/sysext/scheduler/Classes/Controller/SchedulerModuleController.php

index aaa7c51..d0a12bd 100644 (file)
@@ -424,9 +424,9 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                        $tr++;
                        // Display information about each service
                        foreach ($registeredClasses as $class => $classInfo) {
-                               $table[$tr][] = $classInfo['title'];
-                               $table[$tr][] = $classInfo['extension'];
-                               $table[$tr][] = $classInfo['description'];
+                               $table[$tr][] = htmlspecialchars($classInfo['title']);
+                               $table[$tr][] = htmlspecialchars($classInfo['extension']);
+                               $table[$tr][] = htmlspecialchars($classInfo['description']);
                                $link = $GLOBALS['MCONF']['_'] . '&SET[function]=list&CMD=add&tx_scheduler[class]=' . $class;
                                $table[$tr][] = '<a href="' . htmlspecialchars($link) . '" title="' . $GLOBALS['LANG']->sL('LLL:EXT:lang/locallang_common.xlf:new', TRUE) . '" class="icon">' . \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('actions-document-new') . '</a>';
                                $tr++;
@@ -690,10 +690,10 @@ class SchedulerModuleController extends \TYPO3\CMS\Backend\Module\BaseScriptClas
                        ksort($groupedClasses);
                        // Loop on all grouped classes to display a selector
                        foreach ($groupedClasses as $extension => $class) {
-                               $cell .= '<optgroup label="' . $extension . '">';
+                               $cell .= '<optgroup label="' . htmlspecialchars($extension) . '">';
                                foreach ($groupedClasses[$extension] as $class => $classInfo) {
                                        $selected = $class == $taskInfo['class'] ? ' selected="selected"' : '';
-                                       $cell .= '<option value="' . $class . '"' . 'title="' . $classInfo['description'] . '"' . $selected . '>' . $classInfo['title'] . '</option>';
+                                       $cell .= '<option value="' . $class . '"' . 'title="' . htmlspecialchars($classInfo['description']) . '"' . $selected . '>' . htmlspecialchars($classInfo['title']) . '</option>';
                                }
                                $cell .= '</optgroup>';
                        }