From f5befbeac64ee21ff12ba12ee8e25c743979714b Mon Sep 17 00:00:00 2001
From: Robin Appelman <icewind@owncloud.com>
Date: Mon, 23 Feb 2015 14:36:51 +0100
Subject: Check if we have a proper fileinfo

---
 lib/private/files/node/node.php | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

(limited to 'lib/private/files/node')

diff --git a/lib/private/files/node/node.php b/lib/private/files/node/node.php
index 4c7d32cbd0e..2d46596a088 100644
--- a/lib/private/files/node/node.php
+++ b/lib/private/files/node/node.php
@@ -23,6 +23,10 @@
  */
 namespace OC\Files\Node;
 
+use OC\Files\Filesystem;
+use OCP\Files\FileInfo;
+use OCP\Files\InvalidPathException;
+use OCP\Files\NotFoundException;
 use OCP\Files\NotPermittedException;
 
 class Node implements \OCP\Files\Node {
@@ -60,11 +64,21 @@ class Node implements \OCP\Files\Node {
 	/**
 	 * Returns the matching file info
 	 *
-	 * @return \OCP\Files\FileInfo
+	 * @return FileInfo
+	 * @throws InvalidPathException
+	 * @throws NotFoundException
 	 */
 	public function getFileInfo() {
+		if (!Filesystem::isValidPath($this->path)) {
+			throw new InvalidPathException();
+		}
 		if (!$this->fileInfo) {
-			$this->fileInfo = $this->view->getFileInfo($this->path);
+			$fileInfo = $this->view->getFileInfo($this->path);
+			if ($fileInfo instanceof FileInfo) {
+				$this->fileInfo = $fileInfo;
+			} else {
+				throw new NotFoundException();
+			}
 		}
 		return $this->fileInfo;
 	}
-- 
cgit v1.2.3