From 2b91d369742eda6bbcf7c74ecf7051eb01371cfc Mon Sep 17 00:00:00 2001 From: mateuszanella Date: Wed, 1 Apr 2026 14:28:55 -0300 Subject: [PATCH 1/3] added check if wrapper_data is set --- Storage/src/ReadStream.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Storage/src/ReadStream.php b/Storage/src/ReadStream.php index eddbacf89b00..e8d883d5206f 100644 --- a/Storage/src/ReadStream.php +++ b/Storage/src/ReadStream.php @@ -60,7 +60,13 @@ public function getSize(): ?int */ private function getSizeFromMetadata(): int { - foreach ($this->stream->getMetadata('wrapper_data') as $value) { + $metadata = $this->stream->getMetadata('wrapper_data'); + + if (!is_array($metadata)) { + return 0; + } + + foreach ($metadata as $value) { if (substr($value, 0, 15) == 'Content-Length:') { return (int) substr($value, 16); } From 6612332f913133e28d19df180651244374accdcf Mon Sep 17 00:00:00 2001 From: mateuszanella Date: Wed, 1 Apr 2026 19:30:13 -0300 Subject: [PATCH 2/3] added unit test --- Storage/tests/Unit/ReadStreamTest.php | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Storage/tests/Unit/ReadStreamTest.php b/Storage/tests/Unit/ReadStreamTest.php index 36b1db1bf466..01ff740eb3f1 100644 --- a/Storage/tests/Unit/ReadStreamTest.php +++ b/Storage/tests/Unit/ReadStreamTest.php @@ -73,4 +73,15 @@ public function testNoContentLengthHeader() $this->assertEquals(0, $stream->getSize()); } + + public function testReturnsZeroWhenGetSizeIsZeroAndWrapperDataIsNull() + { + $httpStream = $this->prophesize(StreamInterface::class); + $httpStream->getSize()->willReturn(null); + $httpStream->getMetadata('wrapper_data')->willReturn(null); + + $stream = new ReadStream($httpStream->reveal()); + + $this->assertEquals(0, $stream->getSize()); + } } From b00194db25f58d5e8ce36a4d8bae5a59107e2f27 Mon Sep 17 00:00:00 2001 From: mateuszanella Date: Wed, 1 Apr 2026 22:17:32 -0300 Subject: [PATCH 3/3] explicit null check --- Storage/src/ReadStream.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Storage/src/ReadStream.php b/Storage/src/ReadStream.php index e8d883d5206f..bf1c7c2535dc 100644 --- a/Storage/src/ReadStream.php +++ b/Storage/src/ReadStream.php @@ -62,7 +62,7 @@ private function getSizeFromMetadata(): int { $metadata = $this->stream->getMetadata('wrapper_data'); - if (!is_array($metadata)) { + if (is_null($metadata)) { return 0; }