From eb289a859cda292ef660b64c59b1975e6bbf52c8 Mon Sep 17 00:00:00 2001
From: Jan-Hendrik Willms <tleilax+studip@gmail.com>
Date: Fri, 19 Apr 2024 13:15:41 +0000
Subject: [PATCH] fixes #4034

Closes #4034

Merge request studip/studip!2889
---
 lib/bootstrap.php                | 18 ++++++++++--------
 lib/classes/StudipFileloader.php |  6 ++++++
 2 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/lib/bootstrap.php b/lib/bootstrap.php
index c9f51036020..06ddca5d7b1 100644
--- a/lib/bootstrap.php
+++ b/lib/bootstrap.php
@@ -65,6 +65,16 @@ if (isset($_SERVER['SERVER_NAME'])) {
 $GLOBALS['ASSETS_URL'] = $ABSOLUTE_URI_STUDIP . 'assets/';
 $GLOBALS['ASSETS_PATH'] = $ABSOLUTE_PATH_STUDIP . 'assets/';
 
+// Check if instance is configured; redirect to install script if not
+if (!file_exists($GLOBALS['STUDIP_BASE_PATH'] . '/config/config_local.inc.php') && php_sapi_name() !== 'cli') {
+    require_once __DIR__ . '/classes/URLHelper.php';
+
+    URLHelper::setBaseUrl($GLOBALS['ABSOLUTE_URI_STUDIP']);
+    header('Location: ' . URLHelper::getURL('install.php'));
+    die;
+}
+
+// Load configuration
 require __DIR__ . '/classes/StudipFileloader.php';
 
 $added_configs = [];
@@ -80,14 +90,6 @@ if (!defined('Studip\ENV')) {
     define('Studip\ENV', DEFAULT_ENV);
 }
 
-if (!file_exists($GLOBALS['STUDIP_BASE_PATH'] . '/config/config_local.inc.php') && php_sapi_name() !== 'cli') {
-    require_once __DIR__ . '/classes/URLHelper.php';
-
-    URLHelper::setBaseUrl($GLOBALS['ABSOLUTE_URI_STUDIP']);
-    header('Location: ' . URLHelper::getURL('install.php'));
-    die;
-}
-
 require __DIR__ . '/bootstrap-autoload.php';
 
 // construct absolute URL for ASSETS_URL
diff --git a/lib/classes/StudipFileloader.php b/lib/classes/StudipFileloader.php
index f499b6884c3..661c0629196 100644
--- a/lib/classes/StudipFileloader.php
+++ b/lib/classes/StudipFileloader.php
@@ -27,6 +27,12 @@ class StudipFileloader
         $_oldVariableNames = array_keys(get_defined_vars());
 
         foreach (preg_split('/ /', $_filename, -1, PREG_SPLIT_NO_EMPTY) as $file) {
+            if (
+                !file_exists($file)
+                && !stream_resolve_include_path($file)
+            ) {
+                continue;
+            }
             include $file;
         }
         unset($file);
-- 
GitLab