Fuzz introspector: raw_deserialize
For issues and ideas: https://github.com/ossf/fuzz-introspector/issues

Fuzz blockers

The following nodes represent call sites where fuzz blockers occur.

Amount of callsites blocked Calltree index Parent function Callsite Largest blocked function
70 102 Timestamp::from_le_bytes call site: 00102 RawElement::try_into
57 219 Serializer::new call site: 00219 RawElement::try_into
32 173 SerializerHint::take call site: 00173 RawElement::try_into
25 391 usize_try_from_i32 call site: 00391 RawElement::try_into
24 39 RawElement::get_oid_at call site: 00039 RawElement::value
7 64 Document::len call site: 00064 ElementType::from
6 72 i32_from_slice call site: 00072
6 89 Timestamp::from_le_bytes call site: 00089 ParsedDecimal128::new
6 383 read_len call site: 00383
5 487 ParsedDecimal128::new call site: 00487
3 0 EP call site: 00000
3 80 i32_from_slice call site: 00080 RawElement::try_into

Fuzzer calltree

0 fuzz_target [function] [call site] 00000
1 bson::deserialize_from_slice::<Document> [function] [call site] 00001
1 bson::serialize_to_vec [function] [call site] 00002
2 raw::Serializer::new [function] [call site] 00003
3 ParsedDecimal128::new [function] [call site] 00004
4 view_bits_mut::<Msb0> [function] [call site] 00005
4 bytes.view_bits::<Msb0> [function] [call site] 00007
4 bytes.view_bits::<Msb0>().load_le::<u128> [function] [call site] 00008
4 view_bits::<Msb0> [function] [call site] 00009
4 Exponent::from_bits [function] [call site] 00012
5 view_bits_mut::<Msb0> [function] [call site] 00013
5 copy_from_bitslice [function] [call site] 00014
4 Coefficient::from_bits [function] [call site] 00016
5 view_bits_mut::<Msb0> [function] [call site] 00017
5 Document::len [function] [call site] 00018
6 Document::len [function] [call site] 00019
7 Document::len [function] [call site] 00020
5 copy_from_bitslice [function] [call site] 00021
5 copy_from_bitslice [function] [call site] 00022
5 Exponent::value [function] [call site] 00024
6 Exponent::raw [function] [call site] 00025
7 0.view_bits::<Msb0> [function] [call site] 00026
7 0.view_bits::<Msb0>().load_be::<u16> [function] [call site] 00027
5 Error::decimal128 [function] [call site] 00029
6 RawElement::try_into [function] [call site] 00030
7 RawElement::value [function] [call site] 00031
8 RawBsonRef::ObjectId [function] [call site] 00033
8 RawElement::get_oid_at [function] [call site] 00034
9 ObjectId::from_bytes [function] [call site] 00036
9 RawArray::as_bytes [function] [call site] 00037
10 RawArray::as_bytes [function] [call site] 00038
9 RawElement::try_into [function] [call site] 00039
10 RawElement::value [function] [call site] 00040
10 RawBsonRef::to_raw_bson [function] [call site] 00041
11 RawBson::Double [function] [call site] 00042
11 RawBson::String [function] [call site] 00043
11 Self::to_string [function] [call site] 00044
11 RawBson::Array [function] [call site] 00045
11 RawArray::to_owned [function] [call site] 00046
12 RawArray::to_raw_array_buf [function] [call site] 00047
13 RawArrayBuf::from_raw_document_buf [function] [call site] 00048
14 Document::into_iter [function] [call site] 00049
15 Document::into_iter [function] [call site] 00050
16 Document::into_iter [function] [call site] 00051
14 ObjectId::gen_count [function] [call site] 00052
15 fetch_add [function] [call site] 00053
15 u64::to_be_bytes [function] [call site] 00054
13 serialize_to_raw_document_buf [function] [call site] 00055
14 RawDocumentBuf::decode_from_bytes [function] [call site] 00056
15 RawDocument::decode_from_bytes [function] [call site] 00057
16 HumanReadable::as_ref [function] [call site] 00058
17 HumanReadable::deref [function] [call site] 00059
17 &Self::Target::as_ref [function] [call site] 00060
18 HumanReadable::deref [function] [call site] 00061
18 &Self::Target::as_ref [function] [call site] 00062
16 Document::len [function] [call site] 00063
17 Document::len [function] [call site] 00064
16 Error::malformed_bytes [function] [call site] 00066
17 ElementType::from [function] [call site] 00067
17 Error::with_message [function] [call site] 00068
18 Self::to_string [function] [call site] 00070
16 i32_from_slice [function] [call site] 00071
17 Document::get [function] [call site] 00072
18 Document::get [function] [call site] 00073
19 Document::get [function] [call site] 00074
19 HumanReadable::as_ref [function] [call site] 00075
20 HumanReadable::deref [function] [call site] 00076
20 &Self::Target::as_ref [function] [call site] 00077
18 HumanReadable::as_ref [function] [call site] 00078
17 Option::and_then [function] [call site] 00079
17 RawElement::try_into [function] [call site] 00080
18 RawElement::value [function] [call site] 00081
18 RawBsonRef::to_raw_bson [function] [call site] 00082
18 RawElement::try_into [function] [call site] 00083
17 Result::ok [function] [call site] 00084
17 ok_or_else [function] [call site] 00085
17 Error::malformed_bytes [function] [call site] 00086
17 Timestamp::from_le_bytes [function] [call site] 00088
18 CowByteBuffer::copy_from_slice [function] [call site] 00089
19 CowByteBuffer::get_owned_buffer [function] [call site] 00090
20 get_or_insert_with [function] [call site] 00091
20 Cow::Owned [function] [call site] 00092
20 ParsedDecimal128::new [function] [call site] 00093
19 CowByteBuffer::copy_from_slice [function] [call site] 00095
18 CowByteBuffer::copy_from_slice [function] [call site] 00096
18 Timestamp::from_le_bytes [function] [call site] 00097
19 CowByteBuffer::copy_from_slice [function] [call site] 00098
19 CowByteBuffer::copy_from_slice [function] [call site] 00099
19 Timestamp::from_le_bytes [function] [call site] 00100
19 Timestamp::from_le_bytes [function] [call site] 00101
18 Timestamp::from_le_bytes [function] [call site] 00102
16 Document::len [function] [call site] 00103
16 Error::malformed_bytes [function] [call site] 00105
16 Document::len [function] [call site] 00106
16 Error::malformed_bytes [function] [call site] 00108
16 RawDocument::new_unchecked [function] [call site] 00110
17 HumanReadable::as_ref [function] [call site] 00111
18 HumanReadable::deref [function] [call site] 00112
18 &Self::Target::as_ref [function] [call site] 00113
15 Vec<u8>::as_slice [function] [call site] 00114
14 serialize_to_vec [function] [call site] 00116
15 raw::Serializer::new [function] [call site] 00117
15 Uuid::serialize [function] [call site] 00118
16 Serializer::serialize_newtype_struct [function] [call site] 00119
17 Serializer::is_human_readable [function] [call site] 00120
18 unwrap_or [function] [call site] 00121
17 Uuid::serialize [function] [call site] 00122
18 Serializer::serialize_newtype_struct [function] [call site] 00123
17 crate::Uuid::parse_str [function] [call site] 00124
18 uuid::Uuid::parse_str [function] [call site] 00125
19 uuid::Uuid::parse_str [function] [call site] 00126
19 HumanReadable::as_ref [function] [call site] 00127
20 HumanReadable::deref [function] [call site] 00128
20 &Self::Target::as_ref [function] [call site] 00129
19 Result::map_err [function] [call site] 00130
19 Uuid::from_external_uuid [function] [call site] 00132
18 HumanReadable::as_ref [function] [call site] 00133
18 Result::map_err [function] [call site] 00134
18 Uuid::from_external_uuid [function] [call site] 00136
17 Result::map_err [function] [call site] 00137
17 Bson::Binary [function] [call site] 00139
17 RawElement::try_into [function] [call site] 00140
18 RawElement::value [function] [call site] 00141
18 RawBsonRef::to_raw_bson [function] [call site] 00142
18 RawElement::try_into [function] [call site] 00143
17 Bson::Binary [function] [call site] 00145
17 Error::custom [function] [call site] 00147
18 Error::serialization [function] [call site] 00148
19 ElementType::from [function] [call site] 00149
19 Error::with_message [function] [call site] 00150
17 Serializer::is_human_readable [function] [call site] 00151
17 Uuid::serialize [function] [call site] 00152
17 Document::decode_from_reader [function] [call site] 00153
18 crate::raw::RawDocumentBuf::decode_from_reader [function] [call site] 00154
19 crate::raw::reader_to_vec [function] [call site] 00155
20 Result::read_exact [function] [call site] 00156
20 Timestamp::from_le_bytes [function] [call site] 00157
20 Error::malformed_bytes [function] [call site] 00159
20 Vec::with_capacity [function] [call site] 00160
20 Document::extend [function] [call site] 00161
21 Document::insert [function] [call site] 00162
22 Document::insert [function] [call site] 00163
23 Document::insert [function] [call site] 00164
23 RawElement::try_into [function] [call site] 00165
23 RawElement::try_into [function] [call site] 00166
24 RawElement::value [function] [call site] 00167
24 RawBsonRef::to_raw_bson [function] [call site] 00168
24 RawElement::try_into [function] [call site] 00169
22 RawElement::try_into [function] [call site] 00170
22 RawElement::try_into [function] [call site] 00171
20 SerializerHint::take [function] [call site] 00172
21 std::mem::replace [function] [call site] 00173
20 SerializerHint::read_to_end [function] [call site] 00174
19 RawDocument::decode_from_bytes [function] [call site] 00176
20 HumanReadable::as_ref [function] [call site] 00177
20 Document::len [function] [call site] 00178
20 Error::malformed_bytes [function] [call site] 00180
20 i32_from_slice [function] [call site] 00181
20 Document::len [function] [call site] 00182
20 Error::malformed_bytes [function] [call site] 00184
20 Document::len [function] [call site] 00185
20 Error::malformed_bytes [function] [call site] 00187
20 RawDocument::new_unchecked [function] [call site] 00189
18 RawElement::try_into [function] [call site] 00190
19 RawElement::value [function] [call site] 00191
19 RawBsonRef::to_raw_bson [function] [call site] 00192
19 RawElement::try_into [function] [call site] 00193
17 as_slice [function] [call site] 00194
17 crate::error::Result::map_err [function] [call site] 00195
17 Bson::Document [function] [call site] 00197
17 Bson::Array [function] [call site] 00199
17 Document::into_iter [function] [call site] 00200
17 test_ser_map [function] [call site] 00201
18 TestLock::run_concurrently [function] [call site] 00202
18 ParsedDecimal128::new [function] [call site] 00205
19 view_bits_mut::<Msb0> [function] [call site] 00206
19 store_be [function] [call site] 00207
19 bytes.view_bits::<Msb0> [function] [call site] 00208
19 bytes.view_bits::<Msb0>().load_le::<u128> [function] [call site] 00209
19 view_bits::<Msb0> [function] [call site] 00210
19 Exponent::from_bits [function] [call site] 00213
19 Coefficient::from_bits [function] [call site] 00214
19 Coefficient [function] [call site] 00215
18 Document::insert [function] [call site] 00216
18 Document::insert [function] [call site] 00217
18 Serializer::new [function] [call site] 00218
19 ParsedDecimal128::new [function] [call site] 00219
18 Uuid::serialize [function] [call site] 00220
19 Serializer::serialize_newtype_struct [function] [call site] 00221
18 std::result::Result::unwrap [function] [call site] 00222
17 Error::custom [function] [call site] 00227
17 Uuid::serialize [function] [call site] 00229
17 Uuid::serialize [function] [call site] 00230
15 std::result::Result::map_err [function] [call site] 00231
15 Uuid::serialize [function] [call site] 00232
15 Serializer::into_vec [function] [call site] 00234
14 Result::map_err [function] [call site] 00235
11 RawBson::Document [function] [call site] 00236
11 RawArray::to_owned [function] [call site] 00237
12 RawArray::to_raw_array_buf [function] [call site] 00238
11 RawBson::Boolean [function] [call site] 00239
11 RawBson::RegularExpression [function] [call site] 00240
11 Regex::new [function] [call site] 00241
12 HumanReadable::as_ref [function] [call site] 00242
13 HumanReadable::deref [function] [call site] 00243
13 &Self::Target::as_ref [function] [call site] 00244
12 &R::chars [function] [call site] 00245
12 sort_unstable [function] [call site] 00247
12 Document::into_iter [function] [call site] 00248
12 HumanReadable::as_ref [function] [call site] 00250
12 &R::to_string [function] [call site] 00251
11 RawBson::JavaScriptCode [function] [call site] 00252
11 RawArray::to_owned [function] [call site] 00253
12 RawArray::to_raw_array_buf [function] [call site] 00254
11 RawBson::JavaScriptCodeWithScope [function] [call site] 00255
11 to_string [function] [call site] 00256
11 RawArray::to_owned [function] [call site] 00257
11 RawBson::Int32 [function] [call site] 00258
11 RawBson::Int64 [function] [call site] 00259
11 RawBson::Timestamp [function] [call site] 00260
11 RawBson::Binary [function] [call site] 00261
11 serialize_to_vec [function] [call site] 00262
12 raw::Serializer::new [function] [call site] 00263
12 Uuid::serialize [function] [call site] 00264
12 std::result::Result::map_err [function] [call site] 00265
12 Uuid::serialize [function] [call site] 00266
12 Serializer::into_vec [function] [call site] 00268
11 RawBson::ObjectId [function] [call site] 00269
11 RawBson::DateTime [function] [call site] 00270
11 RawBson::Symbol [function] [call site] 00271
11 Self::to_string [function] [call site] 00272
11 RawBson::Decimal128 [function] [call site] 00273
11 RawBson::DbPointer [function] [call site] 00274
11 to_string [function] [call site] 00275
10 RawElement::try_into [function] [call site] 00276
9 Error::malformed_bytes [function] [call site] 00278
9 Error::with_key [function] [call site] 00279
10 RawElement::try_into [function] [call site] 00281
8 RawBsonRef::Int32 [function] [call site] 00282
8 i32_from_slice [function] [call site] 00283
8 RawElement::slice [function] [call site] 00284
9 RawElement::slice_bounds [function] [call site] 00285
10 RawArray::as_bytes [function] [call site] 00286
8 RawBsonRef::Int64 [function] [call site] 00287
8 i64_from_slice [function] [call site] 00288
9 Document::get [function] [call site] 00289
9 Option::and_then [function] [call site] 00290
9 RawElement::try_into [function] [call site] 00291
9 Result::ok [function] [call site] 00292
9 ok_or_else [function] [call site] 00293
9 Error::malformed_bytes [function] [call site] 00294
9 Timestamp::from_le_bytes [function] [call site] 00296
10 CowByteBuffer::copy_from_slice [function] [call site] 00297
10 CowByteBuffer::copy_from_slice [function] [call site] 00298
10 Timestamp::from_le_bytes [function] [call site] 00299
10 Timestamp::from_le_bytes [function] [call site] 00300
8 RawElement::slice [function] [call site] 00301
8 RawBsonRef::Double [function] [call site] 00302
8 f64_from_slice [function] [call site] 00303
9 Document::get [function] [call site] 00304
9 Option::and_then [function] [call site] 00305
9 RawElement::try_into [function] [call site] 00306
9 Result::ok [function] [call site] 00307
9 ok_or_else [function] [call site] 00308
9 Error::malformed_bytes [function] [call site] 00309
9 Timestamp::from_le_bytes [function] [call site] 00311
10 CowByteBuffer::copy_from_slice [function] [call site] 00312
10 CowByteBuffer::copy_from_slice [function] [call site] 00313
10 Timestamp::from_le_bytes [function] [call site] 00314
10 Timestamp::from_le_bytes [function] [call site] 00315
8 RawElement::slice [function] [call site] 00316
8 RawBsonRef::String [function] [call site] 00317
8 RawElement::read_str [function] [call site] 00318
9 try_to_str [function] [call site] 00319
10 simdutf8::basic::from_utf8 [function] [call site] 00320
10 RawElement::try_into [function] [call site] 00322
9 RawElement::str_bytes [function] [call site] 00323
10 RawElement::slice_bounds [function] [call site] 00324
8 RawBsonRef::Document [function] [call site] 00325
8 RawDocument::decode_from_bytes [function] [call site] 00326
8 RawElement::slice [function] [call site] 00327
8 RawBsonRef::Array [function] [call site] 00328
8 RawArray::from_doc [function] [call site] 00329
8 RawDocument::decode_from_bytes [function] [call site] 00330
8 RawElement::slice [function] [call site] 00331
8 RawBsonRef::Boolean [function] [call site] 00332
8 bool_from_slice [function] [call site] 00333
9 u8_from_slice [function] [call site] 00334
10 Document::get [function] [call site] 00335
10 Option::and_then [function] [call site] 00336
10 RawElement::try_into [function] [call site] 00337
10 Result::ok [function] [call site] 00338
10 ok_or_else [function] [call site] 00339
10 Error::malformed_bytes [function] [call site] 00340
10 Timestamp::from_le_bytes [function] [call site] 00342
11 CowByteBuffer::copy_from_slice [function] [call site] 00343
11 CowByteBuffer::copy_from_slice [function] [call site] 00344
11 Timestamp::from_le_bytes [function] [call site] 00345
11 Timestamp::from_le_bytes [function] [call site] 00346
9 Error::malformed_bytes [function] [call site] 00348
8 RawElement::slice [function] [call site] 00350
8 Result::map_err [function] [call site] 00351
8 RawElement::malformed_error [function] [call site] 00352
9 Error::malformed_bytes [function] [call site] 00353
9 Error::with_key [function] [call site] 00354
8 RawBsonRef::DateTime [function] [call site] 00355
8 crate::DateTime::from_millis [function] [call site] 00356
8 i64_from_slice [function] [call site] 00358
8 RawElement::slice [function] [call site] 00359
8 RawBsonRef::Decimal128 [function] [call site] 00360
8 Decimal128::from_bytes [function] [call site] 00361
8 RawElement::slice [function] [call site] 00362
8 RawElement::try_into [function] [call site] 00363
9 RawElement::value [function] [call site] 00364
9 RawBsonRef::to_raw_bson [function] [call site] 00365
9 RawElement::try_into [function] [call site] 00366
8 Result::map_err [function] [call site] 00367
8 RawElement::malformed_error [function] [call site] 00368
8 RawBsonRef::JavaScriptCode [function] [call site] 00369
8 RawElement::read_str [function] [call site] 00370
8 RawBsonRef::Symbol [function] [call site] 00371
8 RawElement::read_str [function] [call site] 00372
8 RawBsonRef::DbPointer [function] [call site] 00373
8 read_lenencode [function] [call site] 00374
9 try_to_str [function] [call site] 00375
9 read_lenencode_bytes [function] [call site] 00376
10 read_len [function] [call site] 00377
11 Document::len [function] [call site] 00378
12 Document::len [function] [call site] 00379
11 Error::malformed_bytes [function] [call site] 00381
11 i32_from_slice [function] [call site] 00382
11 checked_add [function] [call site] 00383
12 usize::checked_add [function] [call site] 00384
13 usize::checked_add [function] [call site] 00385
13 Result::ok_or_else [function] [call site] 00386
13 Error::malformed_bytes [function] [call site] 00387
12 Result::ok_or_else [function] [call site] 00388
12 Error::malformed_bytes [function] [call site] 00389
11 usize_try_from_i32 [function] [call site] 00390
12 Bson::try_from [function] [call site] 00391
13 Bson::Double [function] [call site] 00393
13 Bson::String [function] [call site] 00394
13 Bson::Document [function] [call site] 00395
13 HumanReadable::as_ref [function] [call site] 00396
14 HumanReadable::deref [function] [call site] 00397
14 &Self::Target::as_ref [function] [call site] 00398
13 RawElement::try_into [function] [call site] 00399
13 Bson::Array [function] [call site] 00400
13 HumanReadable::as_ref [function] [call site] 00401
13 RawElement::try_into [function] [call site] 00402
13 Bson::Binary [function] [call site] 00403
13 Bson::ObjectId [function] [call site] 00404
13 Bson::Boolean [function] [call site] 00405
13 Bson::DateTime [function] [call site] 00406
13 Bson::RegularExpression [function] [call site] 00407
13 Bson::JavaScriptCode [function] [call site] 00408
13 Bson::Int32 [function] [call site] 00409
13 Bson::Timestamp [function] [call site] 00410
13 Bson::Int64 [function] [call site] 00411
13 Bson::DbPointer [function] [call site] 00412
13 Bson::Symbol [function] [call site] 00413
13 Bson::JavaScriptCodeWithScope [function] [call site] 00414
13 RawElement::try_into [function] [call site] 00415
13 Bson::Decimal128 [function] [call site] 00416
12 Result::map_err [function] [call site] 00417
11 Error::malformed_bytes [function] [call site] 00419
11 Document::len [function] [call site] 00420
11 Error::malformed_bytes [function] [call site] 00422
11 Error::malformed_bytes [function] [call site] 00424
8 RawElement::slice [function] [call site] 00427
8 RawElement::get_oid_at [function] [call site] 00428
8 RawDocument::read_cstring_at [function] [call site] 00429
9 RawDocument::cstring_bytes_at [function] [call site] 00430
10 RawDocument::as_bytes [function] [call site] 00431
10 Result::splitn [function] [call site] 00432
10 Keys::next [function] [call site] 00433
11 Keys::next [function] [call site] 00434
10 ok_or_else [function] [call site] 00435
10 Error::malformed_bytes [function] [call site] 00436
11 ElementType::from [function] [call site] 00437
11 Error::with_message [function] [call site] 00438
10 Keys::next [function] [call site] 00439
10 Error::malformed_bytes [function] [call site] 00443
9 try_to_str [function] [call site] 00444
8 RawBsonRef::RegularExpression [function] [call site] 00445
8 RawDocument::read_cstring_at [function] [call site] 00446
8 Document::len [function] [call site] 00447
8 RawBsonRef::Timestamp [function] [call site] 00448
8 RawElement::slice [function] [call site] 00449
8 RawElement::try_into [function] [call site] 00450
8 RawElement::malformed_error [function] [call site] 00452
8 Timestamp::from_le_bytes [function] [call site] 00453
9 CowByteBuffer::copy_from_slice [function] [call site] 00454
9 CowByteBuffer::copy_from_slice [function] [call site] 00455
9 Timestamp::from_le_bytes [function] [call site] 00456
9 Timestamp::from_le_bytes [function] [call site] 00457
8 checked_sub [function] [call site] 00458
8 ok_or_else [function] [call site] 00459
8 RawElement::malformed_error [function] [call site] 00460
8 RawElement::malformed_error [function] [call site] 00462
8 BinarySubtype::from [function] [call site] 00463
9 BinarySubtype::Reserved [function] [call site] 00464
9 BinarySubtype::UserDefined [function] [call site] 00465
8 RawArray::as_bytes [function] [call site] 00466
8 RawElement::malformed_error [function] [call site] 00468
8 i32_from_slice [function] [call site] 00469
8 RawArray::as_bytes [function] [call site] 00470
8 checked_add [function] [call site] 00471
8 RawElement::malformed_error [function] [call site] 00473
8 RawElement::slice_bounds [function] [call site] 00474
8 RawElement::slice_bounds [function] [call site] 00475
8 RawBsonRef::Binary [function] [call site] 00476
8 RawElement::malformed_error [function] [call site] 00478
8 RawElement::slice [function] [call site] 00479
8 read_lenencode [function] [call site] 00480
8 Document::len [function] [call site] 00481
8 RawDocument::decode_from_bytes [function] [call site] 00482
8 RawBsonRef::JavaScriptCodeWithScope [function] [call site] 00483
7 RawBsonRef::to_raw_bson [function] [call site] 00484
7 RawElement::try_into [function] [call site] 00485
4 Coefficient [function] [call site] 00487
2 Uuid::serialize [function] [call site] 00488
2 std::result::Result::map_err [function] [call site] 00489
2 Uuid::serialize [function] [call site] 00490
2 Serializer::into_vec [function] [call site] 00492