From cfc0d9249bf53449dc8daed9c9811dc78fe7086c Mon Sep 17 00:00:00 2001 From: Boris Rybalkin Date: Thu, 29 Sep 2016 10:10:35 +0100 Subject: fixing php 32 bit (arm) filemtime on large file issue (#18971) (#25428) * fixing php 32 bit (arm) filemtime on large file issue (#18971) * cast to int --- lib/private/Files/Storage/Local.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/private/Files/Storage/Local.php b/lib/private/Files/Storage/Local.php index 0d63fd46ecc..97201621645 100644 --- a/lib/private/Files/Storage/Local.php +++ b/lib/private/Files/Storage/Local.php @@ -173,8 +173,15 @@ class Local extends \OC\Files\Storage\Common { } public function filemtime($path) { - clearstatcache($this->getSourcePath($path)); - return $this->file_exists($path) ? filemtime($this->getSourcePath($path)) : false; + $fullPath = $this->getSourcePath($path); + clearstatcache($fullPath); + if (!$this->file_exists($path)) { + return false; + } + if (PHP_INT_SIZE === 4) { + return (int) exec ('stat -c %Y '. escapeshellarg ($fullPath)); + } + return filemtime($fullPath); } public function touch($path, $mtime = null) { -- cgit v1.2.3