diff options
author | Tiago Botelho <tiagonbotelho@hotmail.com> | 2017-07-17 15:04:41 +0100 |
---|---|---|
committer | Tiago Botelho <tiagonbotelho@hotmail.com> | 2017-07-17 15:04:41 +0100 |
commit | 9ab8a9b347cd77bb3ae1e10e3f88426073200721 (patch) | |
tree | f7051719e96b899f29e6656bc29d124140f470c0 | |
parent | 15fda22c5c968b01c824b8f1e979c4fa47f17edc (diff) | |
download | gitlab-ce-29652-race-condition-in-project-uploads-fix.tar.gz |
Fixes race condition in project uploads29652-race-condition-in-project-uploads-fix
-rw-r--r-- | app/controllers/import/gitlab_projects_controller.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/app/controllers/import/gitlab_projects_controller.rb b/app/controllers/import/gitlab_projects_controller.rb index 36d246d185b..ca36ad0003a 100644 --- a/app/controllers/import/gitlab_projects_controller.rb +++ b/app/controllers/import/gitlab_projects_controller.rb @@ -12,7 +12,7 @@ class Import::GitlabProjectsController < Import::BaseController return redirect_back_or_default(options: { alert: "You need to upload a GitLab project export archive." }) end - import_upload_path = Gitlab::ImportExport.import_upload_path(filename: project_params[:file].original_filename) + import_upload_path = Gitlab::ImportExport.import_upload_path(filename: tmp_filename) FileUtils.mkdir_p(File.dirname(import_upload_path)) FileUtils.copy_entry(project_params[:file].path, import_upload_path) @@ -34,6 +34,10 @@ class Import::GitlabProjectsController < Import::BaseController private + def tmp_filename + "#{SecureRandom.hex}_#{project_params[:file].original_filename}" + end + def file_is_valid? project_params[:file] && project_params[:file].respond_to?(:read) end |