From c5ba4f476ad59b8b9711346f1d5a901fe0f5bdf5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= <jfd@butonic.de>
Date: Fri, 9 Nov 2012 14:34:15 +0100
Subject: [PATCH] fix quota off by one error

---
 lib/fileproxy/quota.php | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/lib/fileproxy/quota.php b/lib/fileproxy/quota.php
index 46bc8dc16d..742e02d471 100644
--- a/lib/fileproxy/quota.php
+++ b/lib/fileproxy/quota.php
@@ -43,7 +43,7 @@ class OC_FileProxy_Quota extends OC_FileProxy{
 			$userQuota=OC_AppConfig::getValue('files', 'default_quota', 'none');
 		}
 		if($userQuota=='none') {
-			$this->userQuota[$user]=0;
+			$this->userQuota[$user]=-1;
 		}else{
 			$this->userQuota[$user]=OC_Helper::computerFileSize($userQuota);
 		}
@@ -61,8 +61,8 @@ class OC_FileProxy_Quota extends OC_FileProxy{
 		$owner=$storage->getOwner($path);
 
 		$totalSpace=$this->getQuota($owner);
-		if($totalSpace==0) {
-			return 0;
+		if($totalSpace==-1) {
+			return -1;
 		}
 
 		$rootInfo=OC_FileCache::get('', "/".$owner."/files");
@@ -79,7 +79,7 @@ class OC_FileProxy_Quota extends OC_FileProxy{
 	
 	public function postFree_space($path, $space) {
 		$free=$this->getFreeSpace($path);
-		if($free==0) {
+		if($free==-1) {
 			return $space;
 		}
 		return min($free, $space);
@@ -89,21 +89,21 @@ class OC_FileProxy_Quota extends OC_FileProxy{
 		if (is_resource($data)) {
 			$data = '';//TODO: find a way to get the length of the stream without emptying it
 		}
-		return (strlen($data)<$this->getFreeSpace($path) or $this->getFreeSpace($path)==0);
+		return (strlen($data)<$this->getFreeSpace($path) or $this->getFreeSpace($path)==-1);
 	}
 
 	public function preCopy($path1, $path2) {
 		if(!self::$rootView) {
 			self::$rootView = new OC_FilesystemView('');
 		}
-		return (self::$rootView->filesize($path1)<$this->getFreeSpace($path2) or $this->getFreeSpace($path2)==0);
+		return (self::$rootView->filesize($path1)<$this->getFreeSpace($path2) or $this->getFreeSpace($path2)==-1);
 	}
 
 	public function preFromTmpFile($tmpfile, $path) {
-		return (filesize($tmpfile)<$this->getFreeSpace($path) or $this->getFreeSpace($path)==0);
+		return (filesize($tmpfile)<$this->getFreeSpace($path) or $this->getFreeSpace($path)==-1);
 	}
 
 	public function preFromUploadedFile($tmpfile, $path) {
-		return (filesize($tmpfile)<$this->getFreeSpace($path) or $this->getFreeSpace($path)==0);
+		return (filesize($tmpfile)<$this->getFreeSpace($path) or $this->getFreeSpace($path)==-1);
 	}
 }
-- 
GitLab