diff options
-rw-r--r-- | lib/private/Files/Storage/Local.php | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/lib/private/Files/Storage/Local.php b/lib/private/Files/Storage/Local.php index e9a9e8e9885..aade0cdaf25 100644 --- a/lib/private/Files/Storage/Local.php +++ b/lib/private/Files/Storage/Local.php @@ -424,12 +424,26 @@ class Local extends \OC\Files\Storage\Common { public function getETag($path) { if ($this->is_file($path)) { $stat = $this->stat($path); - return md5( - $stat['mtime'] . - $stat['ino'] . - $stat['dev'] . - $stat['size'] - ); + + if ($stat === false) { + return md5(''); + } + + $toHash = ''; + if (isset($stat['mtime'])) { + $toHash .= $stat['mtime']; + } + if (isset($stat['ino'])) { + $toHash .= $stat['ino']; + } + if (isset($stat['dev'])) { + $toHash .= $stat['dev']; + } + if (isset($stat['size'])) { + $toHash .= $stat['size']; + } + + return md5($toHash); } else { return parent::getETag($path); } |