File tree 4 files changed +30
-1
lines changed
4 files changed +30
-1
lines changed Original file line number Diff line number Diff line change
1
+ ## Unreleased
2
+
3
+ ### Bug Fixes
4
+
5
+ - Gracefully fail on malformed utf-8 breadcrumb message ([ #2582 ] ( https://github.com/getsentry/sentry-ruby/pull/2582 ) )
6
+ - Fixes [ #2376 ] ( https://github.com/getsentry/sentry-ruby/issues/2376 )
7
+
1
8
## 5.23.0
2
9
3
10
### Features
Original file line number Diff line number Diff line change @@ -47,7 +47,7 @@ def to_hash
47
47
# @param message [String]
48
48
# @return [void]
49
49
def message = ( message )
50
- @message = message ? message . byteslice ( 0 ..Event ::MAX_MESSAGE_SIZE_IN_BYTES ) : ""
50
+ @message = message && Utils :: EncodingHelper . valid_utf_8? ( message ) ? message . byteslice ( 0 ..Event ::MAX_MESSAGE_SIZE_IN_BYTES ) : ""
51
51
end
52
52
53
53
# @param level [String]
Original file line number Diff line number Diff line change 40
40
crumb . message = long_message
41
41
expect ( crumb . message . length ) . to eq ( Sentry ::Event ::MAX_MESSAGE_SIZE_IN_BYTES + 1 )
42
42
end
43
+
44
+ it "removes bad encoding message gracefully" do
45
+ crumb = described_class . new
46
+ crumb . message = "foo \x1F \xE6 "
47
+ expect ( crumb . message ) . to eq ( "" )
48
+ end
43
49
end
44
50
45
51
describe "#level=" do
Original file line number Diff line number Diff line change 237
237
end
238
238
end
239
239
240
+ context "malformed breadcrumb" do
241
+ let ( :event ) { client . event_from_message ( "foo" ) }
242
+
243
+ before do
244
+ event . breadcrumbs = Sentry ::BreadcrumbBuffer . new ( 1000 )
245
+ breadcrumb = Sentry ::Breadcrumb . new ( message : "foo \x1F \xE6 " )
246
+ event . breadcrumbs . record ( breadcrumb )
247
+ end
248
+
249
+ it "gracefully removes bad encoding breadcrumb message" do
250
+ expect do
251
+ serialized_result = JSON . generate ( event . to_hash )
252
+ end . not_to raise_error
253
+ end
254
+ end
255
+
240
256
context "oversized event" do
241
257
context "due to breadcrumb" do
242
258
let ( :event ) { client . event_from_message ( "foo" ) }
You can’t perform that action at this time.
0 commit comments