From 0ff6ba45429e7b089ca3c0459e0216a77a53898b Mon Sep 17 00:00:00 2001 From: Alexandre Alapetite Date: Tue, 23 Mar 2021 10:54:14 +0100 Subject: SimplePie fix PHP8 uncatched error (#3547) #fix https://github.com/FreshRSS/FreshRSS/pull/3546 When `loadHTML()` is given a null or empty string. ``` PHP Fatal error: Uncaught ValueError: DOMDocument::loadHTML(): Argument #1 ($source) must not be empty in /var/www/freshrss/lib/SimplePie/SimplePie/Locator.php:83 ``` --- lib/SimplePie/SimplePie/Locator.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/SimplePie/SimplePie/Locator.php b/lib/SimplePie/SimplePie/Locator.php index a207df6fe..ebc7ec9c1 100644 --- a/lib/SimplePie/SimplePie/Locator.php +++ b/lib/SimplePie/SimplePie/Locator.php @@ -75,12 +75,19 @@ class SimplePie_Locator $this->force_fsockopen = $force_fsockopen; $this->curl_options = $curl_options; - if (class_exists('DOMDocument')) + if (class_exists('DOMDocument') && $this->file->body != '') { $this->dom = new DOMDocument(); set_error_handler(array('SimplePie_Misc', 'silence_errors')); - $this->dom->loadHTML($this->file->body); + try + { + $this->dom->loadHTML($this->file->body); + } + catch (Throwable $ex) + { + $this->dom = null; + } restore_error_handler(); } else -- cgit v1.2.3