From 09a6a19257f331825841b5da0ce75f306ca39b76 Mon Sep 17 00:00:00 2001 From: Jordi Boggiano Date: Wed, 10 Feb 2016 15:24:49 +0000 Subject: [PATCH] Avoid decoding gzip responses after a redirect, fixes #4897 --- src/Composer/Util/RemoteFilesystem.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Composer/Util/RemoteFilesystem.php b/src/Composer/Util/RemoteFilesystem.php index f4c5f3150..9b0e5a3da 100644 --- a/src/Composer/Util/RemoteFilesystem.php +++ b/src/Composer/Util/RemoteFilesystem.php @@ -311,7 +311,9 @@ class RemoteFilesystem } // 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) { + $hasFollowedRedirect = true; $result = $this->handleRedirect($http_response_header, $additionalOptions, $result); } @@ -332,7 +334,7 @@ class RemoteFilesystem } // 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')); if ($decode) {