diff options
author | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-25 22:43:37 +0000 |
---|---|---|
committer | thestig@chromium.org <thestig@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-03-25 22:43:37 +0000 |
commit | e106457b0288259546ed462ceb39ea27c4820fca (patch) | |
tree | 505892c27216cf9b1ed4d65ef8b736520e1ffd4d /chrome/browser/download/download_manager.cc | |
parent | 4e9a93461499498077313a3dd30d81ef4797cb49 (diff) | |
download | chromium_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.cc | 6 |
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; } |