From f48218397a248473acc5ac9eb0c0a3de2f47fcc9 Mon Sep 17 00:00:00 2001 From: "codeberg.org" Date: Mon, 4 May 2020 22:46:54 +0200 Subject: [PATCH] var/www/pages/index.php : filter empty URI parts mid-path --- var/www/pages/index.php | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/var/www/pages/index.php b/var/www/pages/index.php index 87b7bd3..c645780 100644 --- a/var/www/pages/index.php +++ b/var/www/pages/index.php @@ -36,7 +36,10 @@ if (preg_match("/^\/[a-zA-Z0-9_ +\-\/\.]+\$/", $request_url) != 1) { $git_prefix = "/data/git/gitea-repositories"; $parts = explode("/", $request_url); -array_shift($parts); # remove empty first + +# Remove empty first, potentially empty parts between //. If URL ends on "/", last entry in array is empty too. Remove it: +$parts = array_filter($parts, function($p) { return strlen($p) > 0; }); + $owner = strtolower(array_shift($parts)); $git_root = realpath("$git_prefix/$owner/pages.git"); @@ -45,11 +48,6 @@ if (substr($git_root, 0, strlen($git_prefix)) !== $git_prefix) { send_response(404, "this user/organization does not have codeberg pages"); } -# If URL ends on "/", last entry in array is empty. Remove it: -if (end($parts) === "") { - array_pop($parts); -} - $file_url = implode("/", $parts); # If this is a folder or just empty, we add 'index.html' to the URL: