summaryrefslogtreecommitdiffstats
path: root/chrome/browser/download/download_manager.cc
diff options
context:
space:
mode:
authorthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-25 22:43:37 +0000
committerthestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-03-25 22:43:37 +0000
commite106457b0288259546ed462ceb39ea27c4820fca (patch)
tree505892c27216cf9b1ed4d65ef8b736520e1ffd4d /chrome/browser/download/download_manager.cc
parent4e9a93461499498077313a3dd30d81ef4797cb49 (diff)
downloadchromium_src-e106457b0288259546ed462ceb39ea27c4820fca.zip
chromium_src-e106457b0288259546ed462ceb39ea27c4820fca.tar.gz
chromium_src-e106457b0288259546ed462ceb39ea27c4820fca.tar.bz2
Add an exception to DownloadManager::GenerateExtension() for .tar.gz files with mime_type "application/x-tar".
BUG=5772 Review URL: http://codereview.chromium.org/42622 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@12509 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/download/download_manager.cc')
-rw-r--r--chrome/browser/download/download_manager.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/chrome/browser/download/download_manager.cc b/chrome/browser/download/download_manager.cc
index 98b0e32..42feb0e 100644
--- a/chrome/browser/download/download_manager.cc
+++ b/chrome/browser/download/download_manager.cc
@@ -1142,11 +1142,15 @@ void DownloadManager::GenerateExtension(
// an executable is hidden in a benign file extension;
// E.g. my-cat.jpg becomes my-cat.jpg.js if content type is
// application/x-javascript.
+ // 4. New extension is not ".tar" for .gz files. For misconfigured web
+ // servers, i.e. bug 5772.
FilePath::StringType append_extension;
if (net::GetPreferredExtensionForMimeType(mime_type, &append_extension)) {
if (append_extension != FILE_PATH_LITERAL("txt") &&
append_extension != extension &&
- !IsExecutable(append_extension)) {
+ !IsExecutable(append_extension) &&
+ (append_extension != FILE_PATH_LITERAL("tar") ||
+ extension != FILE_PATH_LITERAL("gz"))) {
extension += FILE_PATH_LITERAL(".");
extension += append_extension;
}