Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/merge_request_diff_file.rb')
-rw-r--r--app/models/merge_request_diff_file.rb12
1 files changed, 11 insertions, 1 deletions
diff --git a/app/models/merge_request_diff_file.rb b/app/models/merge_request_diff_file.rb
index 23319445a38..55ff4250c2d 100644
--- a/app/models/merge_request_diff_file.rb
+++ b/app/models/merge_request_diff_file.rb
@@ -25,6 +25,16 @@ class MergeRequestDiffFile < ApplicationRecord
super
end
- binary? ? content.unpack1('m0') : content
+ return content unless binary?
+
+ # If the data isn't valid base64, return it as-is, since it's almost certain
+ # to be a valid diff. Parsing it as a diff will fail if it's something else.
+ #
+ # https://gitlab.com/gitlab-org/gitlab/-/issues/240921
+ begin
+ content.unpack1('m0')
+ rescue ArgumentError
+ content
+ end
end
end