Avoid decoding gzip responses after a redirect, fixes #4897
parent
2378c9e308
commit
09a6a19257
|
@ -311,7 +311,9 @@ class RemoteFilesystem
|
||||||
}
|
}
|
||||||
|
|
||||||
// handle 3xx redirects for php<5.6, 304 Not Modified is excluded
|
// handle 3xx redirects for php<5.6, 304 Not Modified is excluded
|
||||||
|
$hasFollowedRedirect = false;
|
||||||
if ($userlandFollow && $statusCode >= 300 && $statusCode <= 399 && $statusCode !== 304 && $this->redirects < $this->maxRedirects) {
|
if ($userlandFollow && $statusCode >= 300 && $statusCode <= 399 && $statusCode !== 304 && $this->redirects < $this->maxRedirects) {
|
||||||
|
$hasFollowedRedirect = true;
|
||||||
$result = $this->handleRedirect($http_response_header, $additionalOptions, $result);
|
$result = $this->handleRedirect($http_response_header, $additionalOptions, $result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -332,7 +334,7 @@ class RemoteFilesystem
|
||||||
}
|
}
|
||||||
|
|
||||||
// decode gzip
|
// decode gzip
|
||||||
if ($result && extension_loaded('zlib') && substr($fileUrl, 0, 4) === 'http') {
|
if ($result && extension_loaded('zlib') && substr($fileUrl, 0, 4) === 'http' && !$hasFollowedRedirect) {
|
||||||
$decode = 'gzip' === strtolower($this->findHeaderValue($http_response_header, 'content-encoding'));
|
$decode = 'gzip' === strtolower($this->findHeaderValue($http_response_header, 'content-encoding'));
|
||||||
|
|
||||||
if ($decode) {
|
if ($decode) {
|
||||||
|
|
Loading…
Reference in New Issue