From 67ed0d91c0b70aa2e48d184b4ee112b7c8572082 Mon Sep 17 00:00:00 2001 From: snipe Date: Fri, 4 Mar 2022 02:54:37 -0800 Subject: [PATCH] Handle file_get_contents more gracefully Signed-off-by: snipe --- app/Http/Controllers/ActionlogController.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/ActionlogController.php b/app/Http/Controllers/ActionlogController.php index 31ac13dab..dcd062ce4 100644 --- a/app/Http/Controllers/ActionlogController.php +++ b/app/Http/Controllers/ActionlogController.php @@ -9,11 +9,21 @@ class ActionlogController extends Controller { public function displaySig($filename) { + // PHP doesn't let you handle file not found errors well with + // file_get_contents, so we set the error reporting for just this class + error_reporting(0); + $this->authorize('view', \App\Models\Asset::class); $file = config('app.private_uploads').'/signatures/'.$filename; $filetype = Helper::checkUploadIsImage($file); - $contents = file_get_contents($file); - return Response::make($contents)->header('Content-Type', $filetype); + $contents = file_get_contents($file, false, stream_context_create(['http' => ['ignore_errors' => true]])); + if ($contents === false) { + \Log::warn('File '.$file.' not found'); + return false; + } else { + return Response::make($contents)->header('Content-Type', $filetype); + } + } }