From aaad7fd973d88a49fe23f01cca6b2248ad7977d4 Mon Sep 17 00:00:00 2001 From: Jeroen van Baarsen Date: Thu, 13 Feb 2014 20:09:11 +0100 Subject: Fixes #6207 Allow raw download of *.msi files This PR also allows for download of [exe,rar,r0n,7z,7zip,zip] Fix was originaly proposed by @MensSana --- app/controllers/projects/raw_controller.rb | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'app/controllers/projects/raw_controller.rb') diff --git a/app/controllers/projects/raw_controller.rb b/app/controllers/projects/raw_controller.rb index 18ace028b0c..a6b7ae3f127 100644 --- a/app/controllers/projects/raw_controller.rb +++ b/app/controllers/projects/raw_controller.rb @@ -11,11 +11,7 @@ class Projects::RawController < Projects::ApplicationController @blob = @repository.blob_at(@commit.id, @path) if @blob - type = if @blob.mime_type =~ /html|javascript/ - 'text/plain; charset=utf-8' - else - @blob.mime_type - end + type = get_blob_type headers['X-Content-Type-Options'] = 'nosniff' @@ -29,5 +25,17 @@ class Projects::RawController < Projects::ApplicationController not_found! end end + + private + + def get_blob_type + if @blob.mime_type =~ /html|javascript/ + 'text/plain; charset=utf-8' + elsif @blob.name =~ /(?:msi|exe|rar|r0\d|7z|7zip|zip)$/ + 'application/octet-stream' + else + @blob.mime_type + end + end end -- cgit v1.2.3