From a49e873d3fa513136bfdf1d71bbc2bbcd61d3650 Mon Sep 17 00:00:00 2001
From: Vincent Petry <pvince81@owncloud.com>
Date: Thu, 21 Nov 2013 19:15:11 +0100
Subject: [PATCH] Return plausible isReadable() default impl for ext storage

When an ext storage doesn't implement isReadable(), always returning
true made the file scanner believe that the file exists and creates a
cache entry with the size zero.

This fix makes the default impl of isReadable() use file_exists().

Fixes #5940
---
 apps/files_external/lib/streamwrapper.php | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/apps/files_external/lib/streamwrapper.php b/apps/files_external/lib/streamwrapper.php
index 4a63dfb6e0..a086f411f5 100644
--- a/apps/files_external/lib/streamwrapper.php
+++ b/apps/files_external/lib/streamwrapper.php
@@ -42,11 +42,16 @@ abstract class StreamWrapper extends Common {
 	}
 
 	public function isReadable($path) {
-		return true; //not properly supported
+		// at least check whether it exists
+		// subclasses might want to implement this more thoroughly
+		return $this->file_exists($path);
 	}
 
 	public function isUpdatable($path) {
-		return true; //not properly supported
+		// at least check whether it exists
+		// subclasses might want to implement this more thoroughly
+		// a non-existing file/folder isn't updatable
+		return $this->file_exists($path);
 	}
 
 	public function file_exists($path) {
-- 
GitLab