aboutsummaryrefslogtreecommitdiff
path: root/lib/favicons.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/favicons.php')
-rw-r--r--lib/favicons.php9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/favicons.php b/lib/favicons.php
index 5df3682b8..bcb05f4f2 100644
--- a/lib/favicons.php
+++ b/lib/favicons.php
@@ -22,7 +22,7 @@ function isImgMime(string $content): bool {
return $isImage;
}
-/** @param array<int,int|bool> $curlOptions */
+/** @param array<int,int|bool|string> $curlOptions */
function downloadHttp(string &$url, array $curlOptions = []): string {
syslog(LOG_INFO, 'FreshRSS Favicon GET ' . $url);
$url2 = checkUrl($url);
@@ -61,7 +61,7 @@ function downloadHttp(string &$url, array $curlOptions = []): string {
$url = $url2; //Possible redirect
}
}
- return $info['http_code'] == 200 ? $response : '';
+ return is_array($info) && $info['http_code'] == 200 ? $response : '';
}
function searchFavicon(string &$url): string {
@@ -103,6 +103,9 @@ function searchFavicon(string &$url): string {
}
$iri = $href->get_iri();
+ if ($iri == false) {
+ return '';
+ }
$favicon = downloadHttp($iri, [CURLOPT_REFERER => $url]);
if (isImgMime($favicon)) {
return $favicon;
@@ -115,7 +118,7 @@ function download_favicon(string $url, string $dest): bool {
$url = trim($url);
$favicon = searchFavicon($url);
if ($favicon == '') {
- $rootUrl = preg_replace('%^(https?://[^/]+).*$%i', '$1/', $url);
+ $rootUrl = preg_replace('%^(https?://[^/]+).*$%i', '$1/', $url) ?? $url;
if ($rootUrl != $url) {
$url = $rootUrl;
$favicon = searchFavicon($url);