Fuzz introspector: vhdx
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
96 223 Sector::new call site: 00223 Bus::insert
73 0 EP call site: 00000 Vhdx::new
64 370 DiskSpec::new call site: 00370 MetadataTableEntry::new
27 435 Vhdx::new call site: 00435 Bus::insert
25 143 crate::vhdx::uuid_from_guid call site: 00143 Tap::open_named
24 198 Sector::new call site: 00198 KvmVm::get_preferred_target
17 173 RegionInfo::new call site: 00173 MemoryRangeTable::dirty_ranges_iter
17 320 RegionInfo::new call site: 00320
8 87 VhdxHeader::new call site: 00087 FixedVhd::seek
6 101 calculate_checksum call site: 00101
6 191 RegionInfo::new call site: 00191 read
3 77 FileTypeIdentifier::new call site: 00077 FixedVhd::seek

Fuzzer calltree

0 fuzz_target [function] [call site] 00000
1 memfd_create [function] [call site] 00001
2 libc::syscall [function] [call site] 00002
2 __IncompleteArrayField::as_ptr [function] [call site] 00003
2 std::io::Error::last_os_error [function] [call site] 00005
1 ffi::CString::new [function] [call site] 00007
2 Tap::open_named [function] [call site] 00008
3 build_terminated_if_name [function] [call site] 00009
4 Tap::if_name_as_bytes [function] [call site] 00010
4 &[u8]::len [function] [call site] 00011
5 std::mem::size_of::<virtio_net_hdr_v1> [function] [call site] 00012
4 Error::IfnameTooLong [function] [call site] 00014
4 PvPanicDevice::event_to_string [function] [call site] 00015
5 PvPanicDevice::event_to_string [function] [call site] 00016
6 PvPanicDevice::event_to_string [function] [call site] 00017
6 PvPanicDevice::event_to_string [function] [call site] 00018
6 PvPanicDevice::event_to_string [function] [call site] 00019
5 PvPanicDevice::event_to_string [function] [call site] 00020
5 PvPanicDevice::event_to_string [function] [call site] 00021
4 &[u8]::len [function] [call site] 00022
4 copy_from_slice [function] [call site] 00023
3 libc::open [function] [call site] 00025
3 __IncompleteArrayField::as_ptr [function] [call site] 00026
3 unwrap_or [function] [call site] 00027
3 Error::OpenTun [function] [call site] 00029
3 IoError::last_os_error [function] [call site] 00030
3 File::from_raw_fd [function] [call site] 00031
3 vmm_sys_util::ioctl::ioctl_with_mut_ref [function] [call site] 00032
4 vmm_sys_util::ioctl::ioctl_with_mut_ref [function] [call site] 00033
4 Error::IoctlError [function] [call site] 00035
4 IoError::last_os_error [function] [call site] 00036
3 net_gen::TUNGETFEATURES [function] [call site] 00038
3 Error::GetFeatures [function] [call site] 00040
3 IoError::last_os_error [function] [call site] 00041
3 TxVirtio::default [function] [call site] 00043
4 Tap::new [function] [call site] 00044
5 Tap::open_named [function] [call site] 00045
3 Result::len [function] [call site] 00047
4 std::mem::size_of::<virtio_net_hdr_v1> [function] [call site] 00048
3 copy_from_slice [function] [call site] 00049
3 __IncompleteArrayField::as_slice [function] [call site] 00050
4 ::std::slice::from_raw_parts [function] [call site] 00051
4 __IncompleteArrayField::as_ptr [function] [call site] 00052
3 vmm_sys_util::ioctl::ioctl_with_mut_ref [function] [call site] 00053
3 net_gen::TUNSETIFF [function] [call site] 00054
3 Error::ConfigureTap [function] [call site] 00056
3 IoError::last_os_error [function] [call site] 00057
3 Result::truncate [function] [call site] 00059
3 Result::len [function] [call site] 00060
1 Result::unwrap [function] [call site] 00062
1 std::result::Result::unwrap [function] [call site] 00063
1 File::from_raw_fd [function] [call site] 00064
1 write_all [function] [call site] 00065
1 SeekFrom::Start [function] [call site] 00071
1 Vhdx::new [function] [call site] 00073
2 VhdxHeader::new [function] [call site] 00074
3 FileTypeIdentifier::new [function] [call site] 00076
4 SeekFrom::Start [function] [call site] 00081
4 std::io::Result::map_err [function] [call site] 00082
4 read_u64::<LittleEndian> [function] [call site] 00083
3 Header::new [function] [call site] 00087
4 FixedVhd::seek [function] [call site] 00088
4 SeekFrom::Start [function] [call site] 00089
4 std::io::Result::map_err [function] [call site] 00090
4 Result::read_exact [function] [call site] 00091
4 __IncompleteArrayField::as_ptr [function] [call site] 00093
4 calculate_checksum [function] [call site] 00095
5 LittleEndian::read_u32 [function] [call site] 00096
5 LittleEndian::write_u32 [function] [call site] 00097
5 crc_any::CRC::crc32c [function] [call site] 00098
5 LittleEndian::write_u32 [function] [call site] 00101
4 size_of::<u32> [function] [call site] 00102
4 VhdxHeaderError::InvalidChecksum [function] [call site] 00104
4 io::Error::from [function] [call site] 00105
5 io::Error::other [function] [call site] 00106
3 Header::new [function] [call site] 00108
3 RegionTableHeader::new [function] [call site] 00109
4 FixedVhd::seek [function] [call site] 00110
4 SeekFrom::Start [function] [call site] 00111
4 std::io::Result::map_err [function] [call site] 00112
4 Result::read_exact [function] [call site] 00113
4 __IncompleteArrayField::as_ptr [function] [call site] 00115
4 calculate_checksum [function] [call site] 00117
4 size_of::<u32> [function] [call site] 00118
4 VhdxHeaderError::InvalidChecksum [function] [call site] 00120
4 io::Error::from [function] [call site] 00121
3 RegionTableHeader::new [function] [call site] 00125
2 Result::map_err [function] [call site] 00126
2 RegionInfo::new [function] [call site] 00127
3 Tap::new [function] [call site] 00128
4 Tap::open_named [function] [call site] 00129
3 FixedVhd::seek [function] [call site] 00130
3 SeekFrom::Start [function] [call site] 00131
3 size_of::<RegionTableHeader> [function] [call site] 00132
3 std::io::Result::map_err [function] [call site] 00133
3 Result::read_exact [function] [call site] 00134
3 RegionTableEntry::new [function] [call site] 00136
4 __IncompleteArrayField::as_ptr [function] [call site] 00137
4 crate::vhdx::uuid_from_guid [function] [call site] 00138
5 Uuid::from_fields_le [function] [call site] 00139
5 BigEndian::read_u32 [function] [call site] 00140
5 BigEndian::read_u16 [function] [call site] 00141
5 BigEndian::read_u16 [function] [call site] 00142
5 RateLimiterConfig::try_into [function] [call site] 00143
6 unwrap_or_default [function] [call site] 00144
6 unwrap_or_default [function] [call site] 00145
6 rate_limiter::RateLimiter::new [function] [call site] 00146
7 TokenBucket::new [function] [call site] 00151
7 Tap::new [function] [call site] 00152
8 Tap::open_named [function] [call site] 00153
7 Tap::as_raw_fd [function] [call site] 00154
8 Tap::as_raw_fd [function] [call site] 00155
7 libc::fcntl [function] [call site] 00156
8 libc::fcntl [function] [call site] 00157
8 libc::fcntl [function] [call site] 00158
7 libc::fcntl [function] [call site] 00159
7 std::io::Error::last_os_error [function] [call site] 00161
7 Tap::new [function] [call site] 00163
8 Tap::open_named [function] [call site] 00164
7 Tap::new [function] [call site] 00165
8 Tap::open_named [function] [call site] 00166
6 unwrap_or [function] [call site] 00167
6 unwrap_or [function] [call site] 00168
3 size_of::<RegionTableEntry> [function] [call site] 00171
3 size_of::<RegionTableEntry> [function] [call site] 00172
3 MemoryRangeTable::dirty_ranges_iter [function] [call site] 00173
4 Self::into_iter [function] [call site] 00174
4 BitposIteratorExt::bit_positions [function] [call site] 00175
4 MemoryRangeTable::from_dirty_bitmap [function] [call site] 00176
5 MemoryRangeTable::dirty_ranges_iter [function] [call site] 00177
6 Self::into_iter [function] [call site] 00178
6 BitposIteratorExt::bit_positions [function] [call site] 00179
6 MemoryRangeTable::from_dirty_bitmap [function] [call site] 00180
6 MemoryRangeTable::from_dirty_bitmap [function] [call site] 00184
5 impl [call site] 00185
4 MemoryRangeTable::from_dirty_bitmap [function] [call site] 00189
3 Bus::insert [function] [call site] 00191
4 read [function] [call site] 00193
5 Sector::new [function] [call site] 00195
6 TxVirtio::default [function] [call site] 00196
6 KvmVm::get_preferred_target [function] [call site] 00198
7 RateLimiterConfig::try_into [function] [call site] 00199
8 unwrap_or_default [function] [call site] 00200
8 unwrap_or_default [function] [call site] 00201
8 rate_limiter::RateLimiter::new [function] [call site] 00202
8 unwrap_or [function] [call site] 00203
8 unwrap_or [function] [call site] 00204
7 KvmVm::get_preferred_target [function] [call site] 00205
8 RateLimiterConfig::try_into [function] [call site] 00206
8 KvmVm::get_preferred_target [function] [call site] 00207
8 vm::HypervisorVmError::GetPreferredTarget [function] [call site] 00209
8 RateLimiterConfig::try_into [function] [call site] 00210
9 unwrap_or_default [function] [call site] 00211
9 unwrap_or_default [function] [call site] 00212
9 rate_limiter::RateLimiter::new [function] [call site] 00213
9 unwrap_or [function] [call site] 00214
9 unwrap_or [function] [call site] 00215
8 RateLimiterConfig::try_into [function] [call site] 00216
7 vm::HypervisorVmError::GetPreferredTarget [function] [call site] 00219
7 RateLimiterConfig::try_into [function] [call site] 00220
7 RateLimiterConfig::try_into [function] [call site] 00221
5 KvmVm::get_preferred_target [function] [call site] 00225
5 FixedVhd::seek [function] [call site] 00227
5 SeekFrom::Start [function] [call site] 00228
5 std::io::Result::map_err [function] [call site] 00229
5 Result::read_exact [function] [call site] 00230
4 MemoryRangeTable::dirty_ranges_iter [function] [call site] 00236
5 Self::into_iter [function] [call site] 00237
5 BitposIteratorExt::bit_positions [function] [call site] 00238
5 MemoryRangeTable::from_dirty_bitmap [function] [call site] 00239
5 MemoryRangeTable::from_dirty_bitmap [function] [call site] 00243
4 KvmVm::as_any [function] [call site] 00244
4 BusRange::overlaps [function] [call site] 00245
4 write [function] [call site] 00247
5 Sector::new [function] [call site] 00249
5 KvmVm::get_preferred_target [function] [call site] 00250
6 RateLimiterConfig::try_into [function] [call site] 00251
6 KvmVm::get_preferred_target [function] [call site] 00252
6 vm::HypervisorVmError::GetPreferredTarget [function] [call site] 00254
6 RateLimiterConfig::try_into [function] [call site] 00255
6 RateLimiterConfig::try_into [function] [call site] 00256
5 checked_add [function] [call site] 00261
5 QcowFile::set_len [function] [call site] 00263
6 std::io::Error::other [function] [call site] 00265
5 std::io::Result::map_err [function] [call site] 00266
5 vhdx::vhdx_bat::BatEntry [function] [call site] 00267
5 BatEntry::write_bat_entries [function] [call site] 00268
6 Result::len [function] [call site] 00269
6 FixedVhd::seek [function] [call site] 00270
6 SeekFrom::Start [function] [call site] 00271
6 size_of::<u64> [function] [call site] 00272
6 std::io::Result::map_err [function] [call site] 00273
6 KvmVm::get_preferred_target [function] [call site] 00274
7 RateLimiterConfig::try_into [function] [call site] 00275
7 KvmVm::get_preferred_target [function] [call site] 00276
7 vm::HypervisorVmError::GetPreferredTarget [function] [call site] 00278
7 RateLimiterConfig::try_into [function] [call site] 00279
7 RateLimiterConfig::try_into [function] [call site] 00280
6 write_u64::<LittleEndian> [function] [call site] 00283
5 Result::map_err [function] [call site] 00286
5 FixedVhd::seek [function] [call site] 00287
5 SeekFrom::Start [function] [call site] 00288
5 std::io::Result::map_err [function] [call site] 00289
5 Result::write_all [function] [call site] 00290
5 FixedVhd::seek [function] [call site] 00292
5 SeekFrom::Start [function] [call site] 00293
5 std::io::Result::map_err [function] [call site] 00294
5 Result::write_all [function] [call site] 00295
4 Arc::downgrade [function] [call site] 00316
3 MacAddr::parse_str [function] [call site] 00320
4 FdtWriterResult::as_ref [function] [call site] 00321
4 io::Error::other [function] [call site] 00325
4 std::result::Result::len [function] [call site] 00326
5 std::mem::size_of::<virtio_net_hdr_v1> [function] [call site] 00327
4 vnet_hdr_len [function] [call site] 00328
5 std::mem::size_of::<virtio_net_hdr_v1> [function] [call site] 00329
4 Tap::if_name_as_bytes [function] [call site] 00330
4 RawFile::sync_all [function] [call site] 00331
5 RawFile::sync_all [function] [call site] 00332
6 RawFile::sync_all [function] [call site] 00333
4 is_ascii_hexdigit [function] [call site] 00334
4 u8::from_str_radix [function] [call site] 00335
3 Result::map_err [function] [call site] 00338
3 None::is_none [function] [call site] 00339
3 MacAddr::parse_str [function] [call site] 00342
3 Result::map_err [function] [call site] 00343
3 None::is_none [function] [call site] 00344
3 None::is_none [function] [call site] 00348
3 None::is_none [function] [call site] 00349
3 Result::clear [function] [call site] 00350
3 None::unwrap [function] [call site] 00352
3 None::unwrap [function] [call site] 00353
2 VhdxHeader::region_entry_count [function] [call site] 00355
2 Result::map_err [function] [call site] 00356
2 DiskSpec::new [function] [call site] 00357
3 TxVirtio::default [function] [call site] 00358
3 RawFile::metadata [function] [call site] 00360
4 RawFile::metadata [function] [call site] 00361
5 RawFile::metadata [function] [call site] 00362
3 std::io::Result::map_err [function] [call site] 00363
3 std::io::Result::len [function] [call site] 00364
4 std::mem::size_of::<virtio_net_hdr_v1> [function] [call site] 00365
3 FixedVhd::seek [function] [call site] 00366
3 SeekFrom::Start [function] [call site] 00367
3 std::io::Result::map_err [function] [call site] 00368
3 Result::read_exact [function] [call site] 00369
3 MetadataTableHeader::new [function] [call site] 00371
3 size_of::<MetadataTableHeader> [function] [call site] 00377
3 size_of::<MetadataTableHeader> [function] [call site] 00378
3 MetadataTableEntry::new [function] [call site] 00379
4 __IncompleteArrayField::as_ptr [function] [call site] 00380
4 crate::vhdx::uuid_from_guid [function] [call site] 00381
3 size_of::<MetadataTableEntry> [function] [call site] 00386
3 FixedVhd::seek [function] [call site] 00387
3 SeekFrom::Start [function] [call site] 00388
3 std::io::Result::map_err [function] [call site] 00389
3 MacAddr::parse_str [function] [call site] 00390
3 Result::map_err [function] [call site] 00391
3 read_u32::<LittleEndian> [function] [call site] 00392
3 is_power_of_two [function] [call site] 00395
3 read_u32::<LittleEndian> [function] [call site] 00397
3 MacAddr::parse_str [function] [call site] 00399
3 Result::map_err [function] [call site] 00400
3 read_u64::<LittleEndian> [function] [call site] 00401
3 MacAddr::parse_str [function] [call site] 00403
3 Result::map_err [function] [call site] 00404
3 read_u128::<LittleEndian> [function] [call site] 00405
3 MacAddr::parse_str [function] [call site] 00407
3 Result::map_err [function] [call site] 00408
3 read_u32::<LittleEndian> [function] [call site] 00409
3 MacAddr::parse_str [function] [call site] 00412
3 Result::map_err [function] [call site] 00413
3 read_u32::<LittleEndian> [function] [call site] 00414
3 MacAddr::parse_str [function] [call site] 00417
3 Result::map_err [function] [call site] 00418
3 size_of::<MetadataTableEntry> [function] [call site] 00421
3 VhdxMetadataError::InvalidDiskSize [function] [call site] 00424
3 DiskSpec::sectors_per_block [function] [call site] 00426
4 Result::is_power_of_two [function] [call site] 00427
3 DiskSpec::chunk_ratio [function] [call site] 00430
4 Result::is_power_of_two [function] [call site] 00431
2 Result::map_err [function] [call site] 00435
2 BatEntry::collect_bat_entries [function] [call site] 00436
3 BatEntry::calculate_entries [function] [call site] 00437
4 u64::div_ceil [function] [call site] 00438
3 size_of::<BatEntry> [function] [call site] 00439
3 Vec::with_capacity [function] [call site] 00441
3 FixedVhd::seek [function] [call site] 00442
3 SeekFrom::Start [function] [call site] 00443
3 size_of::<u64> [function] [call site] 00444
3 std::io::Result::map_err [function] [call site] 00445
3 read_u64::<LittleEndian> [function] [call site] 00447
3 Bus::insert [function] [call site] 00449
2 Result::map_err [function] [call site] 00451
1 &[u8]::len [function] [call site] 00453
1 read_exact [function] [call site] 00454
1 Response::ok [function] [call site] 00455
1 String::len [function] [call site] 00457
2 std::mem::size_of::<virtio_net_hdr_v1> [function] [call site] 00458
1 &[u8]::len [function] [call site] 00459
1 write_all [function] [call site] 00460
1 Response::ok [function] [call site] 00461
1 String::len [function] [call site] 00462