From 1d7d5d289401ad40e1a74737416193ae856a15bc Mon Sep 17 00:00:00 2001 From: Thomas Mueller Date: Sat, 1 Jun 2013 00:06:23 +0200 Subject: [PATCH] In cases where smb4php returns false of an empty array stat/( has to return false. Fixes #3466 because the test method of external filesystems uses stat() to detect if the given parameters are okay. Changes to 3rdparty are necessary as well: https://github.com/owncloud/3rdparty/pull/33 --- apps/files_external/lib/smb.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/files_external/lib/smb.php b/apps/files_external/lib/smb.php index 655c3c9a816..81a6c956385 100644 --- a/apps/files_external/lib/smb.php +++ b/apps/files_external/lib/smb.php @@ -57,12 +57,22 @@ class SMB extends \OC\Files\Storage\StreamWrapper{ public function stat($path) { if ( ! $path and $this->root=='/') {//mtime doesn't work for shares - $mtime=$this->shareMTime(); $stat=stat($this->constructUrl($path)); + if (empty($stat)) { + return false; + } + $mtime=$this->shareMTime(); $stat['mtime']=$mtime; return $stat; } else { - return stat($this->constructUrl($path)); + $stat = stat($this->constructUrl($path)); + + // smb4php can return an empty array if the connection could not be established + if (empty($stat)) { + return false; + } + + return $stat; } } -- 2.39.5