diff options
author | Claire <claire.github-309c@sitedethib.com> | 2023-01-13 12:26:34 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-13 12:26:34 +0100 |
commit | afd0d424da4928b9e20a3c7a943f970252ed3a29 (patch) | |
tree | 98641aa5df145b1a025ff29940c2d8814f6b7b2f /app/lib/request.rb | |
parent | 932a22219ae99a285bdd0b69f02627f029327db3 (diff) | |
parent | b52dc5f69d27ce2fcc84b3929840f2d8704ae48a (diff) |
Merge pull request #2080 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/lib/request.rb')
-rw-r--r-- | app/lib/request.rb | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/app/lib/request.rb b/app/lib/request.rb index b2819c8ed..0508169dc 100644 --- a/app/lib/request.rb +++ b/app/lib/request.rb @@ -154,9 +154,7 @@ class Request end module ClientLimit - def body_with_limit(limit = 1.megabyte) - raise Mastodon::LengthValidationError if content_length.present? && content_length > limit - + def truncated_body(limit = 1.megabyte) if charset.nil? encoding = Encoding::BINARY else @@ -173,11 +171,19 @@ class Request contents << chunk chunk.clear - raise Mastodon::LengthValidationError if contents.bytesize > limit + break if contents.bytesize > limit end contents end + + def body_with_limit(limit = 1.megabyte) + raise Mastodon::LengthValidationError if content_length.present? && content_length > limit + + contents = truncated_body(limit) + raise Mastodon::LengthValidationError if contents.bytesize > limit + contents + end end if ::HTTP::Response.methods.include?(:body_with_limit) && !Rails.env.production? |