tags 605540 + patch tags 605410 + patch kthxbye This particular issue has started to become very annoying for me. So I went through the source and am now providing a patch. This patch disables the entire executable file warning system when OS_POSIX is defined. This is for several reasons:
* virtually every meaningful datatype that people use is flagged; * as a consequence, the user just learns to click through the warning; * some datatypes are not practically exploitable except as the superuser (e.g. .deb) and we must assume that the superuser is not an idiot; * any type of data can be named with any extension on POSIX systems, so assuming that only files with certain extensions can contain malware is wrong; * it is *very* annoying to have this prompt all the time with no way whatsoever to turn it off; * it is demeaning to assume that I have failed to consider the consequences of my actions in downloading a file; and * from a correctness point of view, many of these datatypes are not strictly "executables" and calling them such is disingenuous. For my sanity and good health, please apply this patch in your next upload. But please note: the patch has not been tested at all. It may or may not compile or run. -- brian m. carlson / brian with sandals: Houston, Texas, US +1 832 623 2791 | http://www.crustytoothpaste.net/~bmc | My opinion only OpenPGP: RSA v4 4096b: 88AC E9B2 9196 305B A994 7552 F1BA 225C 0223 B187
diff -ur chromium-browser.old/src/chrome/browser/download/download_exe.cc chromium-browser-9.0.587.0~r66374/src/chrome/browser/download/download_exe.cc --- chromium-browser.old/src/chrome/browser/download/download_exe.cc 2010-12-17 20:33:02.000000000 +0000 +++ chromium-browser-9.0.587.0~r66374/src/chrome/browser/download/download_exe.cc 2010-12-17 20:57:00.000000000 +0000 @@ -179,10 +179,16 @@ }; bool IsExecutableFile(const FilePath& path) { +#if defined(OS_POSIX) + return false; +#endif return IsExecutableExtension(path.Extension()); } bool IsExecutableExtension(const FilePath::StringType& extension) { +#if defined(OS_POSIX) + return false; +#endif if (extension.empty()) return false; if (!IsStringASCII(extension)) @@ -225,6 +231,9 @@ }; bool IsExecutableMimeType(const std::string& mime_type) { +#if defined(OS_POSIX) + return false; +#endif for (size_t i = 0; i < arraysize(kExecutableWhiteList); ++i) { if (net::MatchesMimeType(kExecutableWhiteList[i], mime_type)) return true;
signature.asc
Description: Digital signature