diff --git a/lib/private/Files/Storage/Local.php b/lib/private/Files/Storage/Local.php index 9720162164..294e3d0a34 100644 --- a/lib/private/Files/Storage/Local.php +++ b/lib/private/Files/Storage/Local.php @@ -179,7 +179,8 @@ class Local extends \OC\Files\Storage\Common { return false; } if (PHP_INT_SIZE === 4) { - return (int) exec ('stat -c %Y '. escapeshellarg ($fullPath)); + $helper = new \OC\LargeFileHelper(); + return $helper->getFileMtime($fullPath); } return filemtime($fullPath); } diff --git a/lib/private/LargeFileHelper.php b/lib/private/LargeFileHelper.php index 9d0fe86403..b75cdcc210 100644 --- a/lib/private/LargeFileHelper.php +++ b/lib/private/LargeFileHelper.php @@ -187,6 +187,20 @@ class LargeFileHelper { return $result; } + /** + * Returns the current mtime for $fullPath + * + * @param string $fullPath + * @return int + */ + public function getFileMtime($fullPath) { + if (\OC_Helper::is_function_enabled('exec')) { + return $this->exec('stat -c %Y ' . escapeshellarg($fullPath)); + } + + return filemtime($fullPath); + } + protected function exec($cmd) { $result = trim(exec($cmd)); return ctype_digit($result) ? 0 + $result : null;