summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xclasses/rssutils.php12
-rw-r--r--include/functions.php2
-rw-r--r--utils/phpstan_tunables.php2
3 files changed, 12 insertions, 4 deletions
diff --git a/classes/rssutils.php b/classes/rssutils.php
index 13f63bc7a..6785ab3f5 100755
--- a/classes/rssutils.php
+++ b/classes/rssutils.php
@@ -1652,15 +1652,19 @@ class RSSUtils {
}
// Limiting to "image" type misses those served with text/plain
- $contents = UrlHelper::fetch(['url' => $favicon_url]); // , "image");
+ $contents = UrlHelper::fetch([
+ 'url' => $favicon_url,
+ 'max_size' => MAX_FAVICON_FILE_SIZE,
+ //'type' => 'image',
+ ]);
if (!$contents) {
Debug::log("fetching favicon $favicon_url failed", Debug::$LOG_VERBOSE);
return false;
}
- $original_contents = file_exists($icon_file) ? file_get_contents($icon_file) : null;
- if ($original_contents) {
- if (strcmp($contents, $original_contents) === 0) {
+ $original_contents_md5 = file_exists($icon_file) ? md5_file($icon_file) : null;
+ if ($original_contents_md5) {
+ if (md5($contents) == $original_contents_md5) {
Debug::log("favicon content has not changed", Debug::$LOG_VERBOSE);
return $icon_file;
}
diff --git a/include/functions.php b/include/functions.php
index 174ef39f0..df8730aca 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -68,6 +68,8 @@
// do not cache files larger than that (bytes)
define_default('MAX_DOWNLOAD_FILE_SIZE', 16*1024*1024);
// do not download general files larger than that (bytes)
+ define_default('MAX_FAVICON_FILE_SIZE', 1*1024*1024);
+ // do not download favicon files larger than that (bytes)
define_default('CACHE_MAX_DAYS', 7);
// max age in days for various automatically cached (temporary) files
define_default('MAX_CONDITIONAL_INTERVAL', 3600*12);
diff --git a/utils/phpstan_tunables.php b/utils/phpstan_tunables.php
index 7d5d8f03a..e192bcdba 100644
--- a/utils/phpstan_tunables.php
+++ b/utils/phpstan_tunables.php
@@ -27,6 +27,8 @@
// do not cache files larger than that (bytes)
define('MAX_DOWNLOAD_FILE_SIZE', 16*1024*1024);
// do not download general files larger than that (bytes)
+ define('MAX_FAVICON_FILE_SIZE', 1*1024*1024);
+ // do not download favicon files larger than that (bytes)
define('CACHE_MAX_DAYS', 7);
// max age in days for various automatically cached (temporary) files
define('MAX_CONDITIONAL_INTERVAL', 3600*12);