From eadcc8dc9338339f9790f580fc9c4be92b13e70b Mon Sep 17 00:00:00 2001 From: fabrixxm Date: Mon, 27 Sep 2021 12:14:19 +0200 Subject: [PATCH 1/2] Handle reading empty file in ReversedFileReader fix #10766 --- src/Util/ReversedFileReader.php | 3 +++ tests/datasets/log/empty.friendica.log.txt | 0 tests/src/Model/Log/ParsedLogIteratorTest.php | 12 ++++++++++++ 3 files changed, 15 insertions(+) create mode 100644 tests/datasets/log/empty.friendica.log.txt diff --git a/src/Util/ReversedFileReader.php b/src/Util/ReversedFileReader.php index bdc31f0cba..92c8cced18 100644 --- a/src/Util/ReversedFileReader.php +++ b/src/Util/ReversedFileReader.php @@ -95,6 +95,9 @@ class ReversedFileReader implements \Iterator if ($this->pos == 0) { return array_pop($buffer); } + if (is_null($buffer)) { + return null; + } if (count($buffer) > 1) { return array_pop($buffer); } diff --git a/tests/datasets/log/empty.friendica.log.txt b/tests/datasets/log/empty.friendica.log.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/tests/src/Model/Log/ParsedLogIteratorTest.php b/tests/src/Model/Log/ParsedLogIteratorTest.php index df9f8393a9..2ac53661b9 100644 --- a/tests/src/Model/Log/ParsedLogIteratorTest.php +++ b/tests/src/Model/Log/ParsedLogIteratorTest.php @@ -145,4 +145,16 @@ class ParsedLogIteratorTest extends TestCase $pls = iterator_to_array($this->pli, false); self::assertCount(0, $pls); } + + public function testEmptyLogFile() + { + $logfile = dirname(__DIR__) . '/../../datasets/log/empty.friendica.log.txt'; + + $reader = new ReversedFileReader(); + $pli = new ParsedLogIterator($reader); + $pli->open($logfile); + + $pls = iterator_to_array($pli, false); + self::assertCount(0, $pls); + } } From ab7de16aca7f6d45b1f73fbd693322a096da5919 Mon Sep 17 00:00:00 2001 From: fabrixxm Date: Mon, 27 Sep 2021 12:22:08 +0200 Subject: [PATCH 2/2] Fix code style --- tests/src/Model/Log/ParsedLogIteratorTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/src/Model/Log/ParsedLogIteratorTest.php b/tests/src/Model/Log/ParsedLogIteratorTest.php index 2ac53661b9..3ed1a33aa6 100644 --- a/tests/src/Model/Log/ParsedLogIteratorTest.php +++ b/tests/src/Model/Log/ParsedLogIteratorTest.php @@ -150,8 +150,8 @@ class ParsedLogIteratorTest extends TestCase { $logfile = dirname(__DIR__) . '/../../datasets/log/empty.friendica.log.txt'; - $reader = new ReversedFileReader(); - $pli = new ParsedLogIterator($reader); + $reader = new ReversedFileReader(); + $pli = new ParsedLogIterator($reader); $pli->open($logfile); $pls = iterator_to_array($pli, false);