diff options
Diffstat (limited to 'app/models/merge_request_diff_file.rb')
-rw-r--r-- | app/models/merge_request_diff_file.rb | 12 |
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 |