From 47525f4a9286518d793b07afd4e5cf4d024ccdfa Mon Sep 17 00:00:00 2001
From: Benni Mack <benni@typo3.org>
Date: Mon, 20 Apr 2020 21:07:03 +0200
Subject: [PATCH] [BUGFIX] Ensure ZipService sets proper permissions
 recursively

ZipService->extract was introduced for a security patch set
but the permissions are not set correctly, as fixPermissions
receives a directory with a slash at the end, resulting
in "//" for recursive checks.

This patch fixes the issue.

Resolves: #90417
Relates: #90118
Releases: master, 9.5
Change-Id: Ie56ef6a3781b12c9ac2cf9a859ec226f48691d7f
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/64267
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Tymoteusz Motylewski <t.motylewski@gmail.com>
Tested-by: Danilo Caccialanza <supercaccia@bluewin.ch>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Tymoteusz Motylewski <t.motylewski@gmail.com>
Reviewed-by: Danilo Caccialanza <supercaccia@bluewin.ch>
Reviewed-by: Guido Schmechel <guido.schmechel@brandung.de>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
---
 typo3/sysext/core/Classes/Service/Archive/ZipService.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/typo3/sysext/core/Classes/Service/Archive/ZipService.php b/typo3/sysext/core/Classes/Service/Archive/ZipService.php
index 6cbd9ddfd244..02e1e834b098 100644
--- a/typo3/sysext/core/Classes/Service/Archive/ZipService.php
+++ b/typo3/sysext/core/Classes/Service/Archive/ZipService.php
@@ -51,7 +51,7 @@ class ZipService
         $result = $zip->extractTo($directory);
         $zip->close();
         if ($result) {
-            GeneralUtility::fixPermissions($directory, true);
+            GeneralUtility::fixPermissions(rtrim($directory, '/'), true);
         }
         return $result;
     }
-- 
GitLab