From eadcc8dc9338339f9790f580fc9c4be92b13e70b Mon Sep 17 00:00:00 2001
From: fabrixxm <fabrix.xm@gmail.com>
Date: Mon, 27 Sep 2021 12:14:19 +0200
Subject: [PATCH] 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);
+	}
 }
-- 
2.39.5