From 3d449f91fc7402f5db0637c89908383c42989774 Mon Sep 17 00:00:00 2001
From: Andreas Fernandez <a.fernandez@scripting-base.de>
Date: Fri, 11 Mar 2016 15:56:57 +0100
Subject: [PATCH] [BUGFIX] Load XML files of Extension Manager properly
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Since the XEE security fix (I26701fc2ffb5aed7ccbd96c168aef571d012091e),
the XML files in the Extension Manager may are not loaded anymore, depending
on the machine. Change the way how the files are loaded to fix the issue.

Change-Id: I2a3dffd089ed427b965bcbae8aa596c26a81770b
Resolves: #75022
Releases: master, 7.6, 6.2
Reviewed-on: https://review.typo3.org/47196
Reviewed-by: Daniel Maier <dani-maier@gmx.de>
Reviewed-by: Mathias Schreiber <mathias.schreiber@wmdb.de>
Tested-by: Mathias Schreiber <mathias.schreiber@wmdb.de>
Tested-by: Stephan Großberndt <stephan@grossberndt.de>
Reviewed-by: Susanne Moog <typo3@susannemoog.de>
Reviewed-by: Oliver Hader <oliver.hader@typo3.org>
Tested-by: Oliver Hader <oliver.hader@typo3.org>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
---
 .../Classes/Utility/Parser/ExtensionXmlPullParser.php         | 4 ++--
 .../Classes/Utility/Parser/MirrorXmlPullParser.php            | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/typo3/sysext/extensionmanager/Classes/Utility/Parser/ExtensionXmlPullParser.php b/typo3/sysext/extensionmanager/Classes/Utility/Parser/ExtensionXmlPullParser.php
index a28fa3729ea2..56721801458a 100644
--- a/typo3/sysext/extensionmanager/Classes/Utility/Parser/ExtensionXmlPullParser.php
+++ b/typo3/sysext/extensionmanager/Classes/Utility/Parser/ExtensionXmlPullParser.php
@@ -53,8 +53,8 @@ class ExtensionXmlPullParser extends AbstractExtensionXmlParser
         if (!(is_object($this->objXml) && get_class($this->objXml) == 'XMLReader')) {
             throw new \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException('Unable to create XML parser.', 1342640540);
         }
-        if ($this->objXml->open($file, 'utf-8') === false) {
-            throw new \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException(sprintf('Unable to open file resource %s.', $file));
+        if ($this->objXml->xml(file_get_contents($file), 'utf-8') === false) {
+            throw new \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException(sprintf('Unable to parse file resource %s.', $file));
         }
         while ($this->objXml->read()) {
             if ($this->objXml->nodeType == \XMLReader::ELEMENT) {
diff --git a/typo3/sysext/extensionmanager/Classes/Utility/Parser/MirrorXmlPullParser.php b/typo3/sysext/extensionmanager/Classes/Utility/Parser/MirrorXmlPullParser.php
index e49f9d7b974c..5f5b5aafa9c5 100644
--- a/typo3/sysext/extensionmanager/Classes/Utility/Parser/MirrorXmlPullParser.php
+++ b/typo3/sysext/extensionmanager/Classes/Utility/Parser/MirrorXmlPullParser.php
@@ -55,8 +55,8 @@ class MirrorXmlPullParser extends AbstractMirrorXmlParser
         if (!(is_object($this->objXml) && get_class($this->objXml) == 'XMLReader')) {
             throw new \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException('Unable to create XML parser.', 1342640820);
         }
-        if ($this->objXml->open($file, 'utf-8') === false) {
-            throw new \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException(sprintf('Unable to open file resource %s.', $file), 1342640893);
+        if ($this->objXml->xml(file_get_contents($file), 'utf-8') === false) {
+            throw new \TYPO3\CMS\Extensionmanager\Exception\ExtensionManagerException(sprintf('Unable to parse file resource %s.', $file), 1342640893);
         }
         while ($this->objXml->read()) {
             if ($this->objXml->nodeType == \XMLReader::ELEMENT) {
-- 
GitLab