rssutils: check if returned data is in gzip format before trying to decode it
This commit is contained in:
parent
de9ff1644f
commit
958fbfedb6
|
@ -259,10 +259,14 @@ class RSSUtils {
|
||||||
global $fetch_curl_used;
|
global $fetch_curl_used;
|
||||||
|
|
||||||
if (!$fetch_curl_used) {
|
if (!$fetch_curl_used) {
|
||||||
|
$is_gzipped = RSSUtils::is_gzipped($feed_data);
|
||||||
|
|
||||||
|
if ($is_gzipped) {
|
||||||
$tmp = @gzdecode($feed_data);
|
$tmp = @gzdecode($feed_data);
|
||||||
|
|
||||||
if ($tmp) $feed_data = $tmp;
|
if ($tmp) $feed_data = $tmp;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$feed_data = trim($feed_data);
|
$feed_data = trim($feed_data);
|
||||||
|
|
||||||
|
@ -433,10 +437,16 @@ class RSSUtils {
|
||||||
global $fetch_curl_used;
|
global $fetch_curl_used;
|
||||||
|
|
||||||
if (!$fetch_curl_used) {
|
if (!$fetch_curl_used) {
|
||||||
|
$is_gzipped = RSSUtils::is_gzipped($feed_data);
|
||||||
|
|
||||||
|
Debug::log("is_gzipped: $is_gzipped", Debug::$LOG_VERBOSE);
|
||||||
|
|
||||||
|
if ($is_gzipped) {
|
||||||
$tmp = @gzdecode($feed_data);
|
$tmp = @gzdecode($feed_data);
|
||||||
|
|
||||||
if ($tmp) $feed_data = $tmp;
|
if ($tmp) $feed_data = $tmp;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$feed_data = trim($feed_data);
|
$feed_data = trim($feed_data);
|
||||||
|
|
||||||
|
@ -1602,6 +1612,8 @@ class RSSUtils {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static function is_gzipped($feed_data) {
|
||||||
|
return mb_strpos($feed_data, "\x1f" . "\x8b" . "\x08", 0, "US-ASCII") === 0;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue