diff --git a/lib/private/files/storage/common.php b/lib/private/files/storage/common.php
index 9657b511f153d518336f575898555038d19cdc6b..0720b8180c968214cdc500ef436810649f3b0ce1 100644
--- a/lib/private/files/storage/common.php
+++ b/lib/private/files/storage/common.php
@@ -226,6 +226,7 @@ abstract class Common implements \OC\Files\Storage\Storage {
 		$tmpFile = \OC_Helper::tmpFile($extension);
 		$target = fopen($tmpFile, 'w');
 		\OC_Helper::streamCopy($source, $target);
+		fclose($target);
 		return $tmpFile;
 	}
 
diff --git a/lib/private/files/storage/dav.php b/lib/private/files/storage/dav.php
index 02c3ebd0202e5b67eb065fd9c648dbfab917550d..ce447417d20880fb67ec8c2f4a50f29a6c2fb068 100644
--- a/lib/private/files/storage/dav.php
+++ b/lib/private/files/storage/dav.php
@@ -295,6 +295,7 @@ class DAV extends \OC\Files\Storage\Common {
 			\OCP\Util::writeLog("webdav client", 'curl GET ' . curl_getinfo($curl, CURLINFO_EFFECTIVE_URL) . ' returned status code ' . $statusCode, \OCP\Util::ERROR);
 		}
 		curl_close($curl);
+		fclose($source);
 		$this->removeCachedFile($target);
 	}
 
diff --git a/lib/private/files/view.php b/lib/private/files/view.php
index 6749fcd55d2307234b6bc53f4e7e2e591b05bd02..1037056b0fb1eb86468d0f6a3bc3b916ebf18fba 100644
--- a/lib/private/files/view.php
+++ b/lib/private/files/view.php
@@ -670,6 +670,7 @@ class View {
 			$source = fopen($tmpFile, 'r');
 			if ($source) {
 				$this->file_put_contents($path, $source);
+				fclose($source);
 				unlink($tmpFile);
 				return true;
 			} else {