From 1a104df1895af3379885cc7be7f3c401c6a0caf6 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Fri, 14 Oct 2016 09:09:21 +0200 Subject: [PATCH] Make sure we only use numbers as length Signed-off-by: Joas Schilling --- apps/dav/lib/Connector/Sabre/QuotaPlugin.php | 5 +++-- apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/apps/dav/lib/Connector/Sabre/QuotaPlugin.php b/apps/dav/lib/Connector/Sabre/QuotaPlugin.php index 0682fca94ea..484bb5129e8 100644 --- a/apps/dav/lib/Connector/Sabre/QuotaPlugin.php +++ b/apps/dav/lib/Connector/Sabre/QuotaPlugin.php @@ -120,12 +120,13 @@ class QuotaPlugin extends \Sabre\DAV\ServerPlugin { public function getLength() { $req = $this->server->httpRequest; $length = $req->getHeader('X-Expected-Entity-Length'); - if (!$length) { + if (!is_numeric($length)) { $length = $req->getHeader('Content-Length'); + $length = is_numeric($length) ? $length : null; } $ocLength = $req->getHeader('OC-Total-Length'); - if ($length && $ocLength) { + if (is_numeric($length) && is_numeric($ocLength)) { return max($length, $ocLength); } diff --git a/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php index 48c920541a8..89bc1ee8adb 100644 --- a/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php @@ -132,6 +132,12 @@ class QuotaPluginTest extends \Test\TestCase { array(512, array('CONTENT-LENGTH' => '512')), array(2048, array('OC-TOTAL-LENGTH' => '2048', 'CONTENT-LENGTH' => '1024')), array(4096, array('OC-TOTAL-LENGTH' => '2048', 'X-EXPECTED-ENTITY-LENGTH' => '4096')), + [null, ['X-EXPECTED-ENTITY-LENGTH' => 'A']], + [null, ['CONTENT-LENGTH' => 'A']], + [1024, ['OC-TOTAL-LENGTH' => 'A', 'CONTENT-LENGTH' => '1024']], + [1024, ['OC-TOTAL-LENGTH' => 'A', 'X-EXPECTED-ENTITY-LENGTH' => '1024']], + [null, ['OC-TOTAL-LENGTH' => '2048', 'X-EXPECTED-ENTITY-LENGTH' => 'A']], + [null, ['OC-TOTAL-LENGTH' => '2048', 'CONTENT-LENGTH' => 'A']], ); } -- 2.39.5