From 1f6f5fdcc5de61effa2c4850e8a15704ff9e1c71 Mon Sep 17 00:00:00 2001 From: Josh Richards Date: Thu, 21 Dec 2023 11:19:06 -0500 Subject: [PATCH] fix(ViewController): Regression lead to 500 on non-existent fileIds Fixes #42418 Signed-off-by: Josh Richards --- apps/files/lib/Controller/ViewController.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/apps/files/lib/Controller/ViewController.php b/apps/files/lib/Controller/ViewController.php index be5069b7f61..8de679f25dd 100644 --- a/apps/files/lib/Controller/ViewController.php +++ b/apps/files/lib/Controller/ViewController.php @@ -237,12 +237,16 @@ class ViewController extends Controller { if ($fileid && $dir !== '') { $baseFolder = $this->rootFolder->getUserFolder($userId); $nodes = $baseFolder->getById((int) $fileid); - $nodePath = $baseFolder->getRelativePath($nodes[0]->getPath()); - $relativePath = $nodePath ? dirname($nodePath) : ''; - // If the requested path does not contain the file id - // or if the requested path is not the file id itself - if (count($nodes) === 1 && $relativePath !== $dir && $nodePath !== $dir) { - return $this->redirectToFile((int) $fileid); + if (!empty($nodes)) { + $nodePath = $baseFolder->getRelativePath($nodes[0]->getPath()); + $relativePath = $nodePath ? dirname($nodePath) : ''; + // If the requested path does not contain the file id + // or if the requested path is not the file id itself + if (count($nodes) === 1 && $relativePath !== $dir && $nodePath !== $dir) { + return $this->redirectToFile((int) $fileid); + } + } else { // fileid does not exist anywhere + $fileNotFound = true; } } -- 2.39.5