diff --git a/lib/private/helper.php b/lib/private/helper.php
index 17d3840a3ea5ac780e707d107ac4003941b73eee..7c1edd1b05880f4a5f7e3ce303b0262ba6b441eb 100644
--- a/lib/private/helper.php
+++ b/lib/private/helper.php
@@ -579,8 +579,20 @@ class OC_Helper {
 	public static function tmpFile($postfix = '') {
 		$file = get_temp_dir() . '/' . md5(time() . rand()) . $postfix;
 		$fh = fopen($file, 'w');
-		fclose($fh);
-		self::$tmpFiles[] = $file;
+		if ($fh!==false){
+			fclose($fh);
+			self::$tmpFiles[] = $file;
+		} else {
+			OC_Log::write(
+				'OC_Helper',
+				sprintf(
+					'Can not create a temporary file in directory %s. Check it exists and has correct permissions',
+					get_temp_dir()
+				),
+				OC_Log::WARN
+			);
+			$file = false;
+		}
 		return $file;
 	}