From: Anna Larch Date: Wed, 19 Jul 2023 14:39:04 +0000 (+0200) Subject: fix: don't emit Hooks when hookpaths are empty X-Git-Tag: v27.1.0beta3~11^2 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=818ddb02c5b99623b15c8de49ce60dda11095b88;p=nextcloud-server.git fix: don't emit Hooks when hookpaths are empty Signed-off-by: Anna Larch --- diff --git a/lib/private/Files/View.php b/lib/private/Files/View.php index a73b60989fd..05b4b2e21b8 100644 --- a/lib/private/Files/View.php +++ b/lib/private/Files/View.php @@ -744,14 +744,18 @@ class View { // if it was a rename from a part file to a regular file it was a write and not a rename operation $this->emit_file_hooks_pre($exists, $target, $run); } elseif ($this->shouldEmitHooks($source)) { - \OC_Hook::emit( - Filesystem::CLASSNAME, Filesystem::signal_rename, - [ - Filesystem::signal_param_oldpath => $this->getHookPath($source), - Filesystem::signal_param_newpath => $this->getHookPath($target), - Filesystem::signal_param_run => &$run - ] - ); + $sourcePath = $this->getHookPath($source); + $targetPath = $this->getHookPath($target); + if ($sourcePath !== null && $targetPath !== null) { + \OC_Hook::emit( + Filesystem::CLASSNAME, Filesystem::signal_rename, + [ + Filesystem::signal_param_oldpath => $sourcePath, + Filesystem::signal_param_newpath => $targetPath, + Filesystem::signal_param_run => &$run + ] + ); + } } if ($run) { $this->verifyPath(dirname($target), basename($target)); @@ -817,14 +821,18 @@ class View { } } elseif ($result) { if ($this->shouldEmitHooks($source) && $this->shouldEmitHooks($target)) { - \OC_Hook::emit( - Filesystem::CLASSNAME, - Filesystem::signal_post_rename, - [ - Filesystem::signal_param_oldpath => $this->getHookPath($source), - Filesystem::signal_param_newpath => $this->getHookPath($target) - ] - ); + $sourcePath = $this->getHookPath($source); + $targetPath = $this->getHookPath($target); + if ($sourcePath !== null && $targetPath !== null) { + \OC_Hook::emit( + Filesystem::CLASSNAME, + Filesystem::signal_post_rename, + [ + Filesystem::signal_param_oldpath => $sourcePath, + Filesystem::signal_param_newpath => $targetPath, + ] + ); + } } } }