From 7bb0e61dbbedd30f56c93ff5562e319309b92140 Mon Sep 17 00:00:00 2001
From: Anupama Sarjoshi <anupama.sarjoshi@open.ac.uk>
Date: Mon, 20 May 2024 17:07:32 +0100
Subject: [PATCH] Add trim to fix filename path returned by zip::getNameIndex
 function

---
 stack/cas/connector.server.class.php       | 3 ++-
 stack/cas/connector.server_proxy.class.php | 3 ++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/stack/cas/connector.server.class.php b/stack/cas/connector.server.class.php
index 0b7071f9a..c5f5178e6 100644
--- a/stack/cas/connector.server.class.php
+++ b/stack/cas/connector.server.class.php
@@ -74,7 +74,8 @@ class stack_cas_connection_server extends stack_cas_connection_base {
             $zip = new ZipArchive();
             $zip->open($ziptemp);
             for ($i = 0; $i < $zip->numFiles; $i++) {
-                $filenameinzip = $zip->getNameIndex($i);
+                // In some PHP versions, zip::getNameIndex returns filename with leading '/', hence trim.
+                $filenameinzip = trim($zip->getNameIndex($i), '/');
 
                 if ($filenameinzip === 'OUTPUT') {
                     // This one contains the output from maxima.
diff --git a/stack/cas/connector.server_proxy.class.php b/stack/cas/connector.server_proxy.class.php
index e83de1d1e..ef94a31aa 100644
--- a/stack/cas/connector.server_proxy.class.php
+++ b/stack/cas/connector.server_proxy.class.php
@@ -99,7 +99,8 @@ class stack_cas_connection_server_proxy extends stack_cas_connection_base {
             $zip = new ZipArchive();
             $zip->open($ziptemp);
             for ($i = 0; $i < $zip->numFiles; $i++) {
-                $filenameinzip = $zip->getNameIndex($i);
+                // In some PHP versions, zip::getNameIndex returns filename with leading '/', hence trim.
+                $filenameinzip = trim($zip->getNameIndex($i), '/');
 
                 if ($filenameinzip === 'OUTPUT') {
                     // This one contains the output from maxima.
-- 
GitLab