From: Thomas Müller Date: Mon, 30 Sep 2013 07:21:37 +0000 (+0200) Subject: Merge branch 'master' into move-aborted-upload-detection-into-plugin-master X-Git-Tag: v6.0.0alpha2~122^2~1 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=952433eae6cdf15e8615b4da682b81f4537b0ba0;p=nextcloud-server.git Merge branch 'master' into move-aborted-upload-detection-into-plugin-master --- 952433eae6cdf15e8615b4da682b81f4537b0ba0 diff --cc lib/connector/sabre/directory.php index 29374f7a6cf,a50098df793..382bdf06df1 --- a/lib/connector/sabre/directory.php +++ b/lib/connector/sabre/directory.php @@@ -74,8 -74,27 +74,14 @@@ class OC_Connector_Sabre_Directory exte \OC\Files\Filesystem::file_put_contents($partpath, $data); - //detect aborted upload - if (isset ($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD'] === 'PUT' ) { - if (isset($_SERVER['CONTENT_LENGTH'])) { - $expected = $_SERVER['CONTENT_LENGTH']; - $actual = \OC\Files\Filesystem::filesize($partpath); - if ($actual != $expected) { - \OC\Files\Filesystem::unlink($partpath); - throw new Sabre_DAV_Exception_BadRequest( - 'expected filesize ' . $expected . ' got ' . $actual); - } - } - } - // rename to correct path - \OC\Files\Filesystem::rename($partpath, $newPath); + $renameOkay = \OC\Files\Filesystem::rename($partpath, $newPath); + $fileExists = \OC\Files\Filesystem::file_exists($newPath); + if ($renameOkay === false || $fileExists === false) { + \OC_Log::write('webdav', '\OC\Files\Filesystem::rename() failed', \OC_Log::ERROR); + \OC\Files\Filesystem::unlink($partpath); + throw new Sabre_DAV_Exception(); + } // allow sync clients to send the mtime along in a header $mtime = OC_Request::hasModificationTime();