MCPcopy Create free account
hub / github.com/MultiFuzz/MultiFuzz / to_bytes

Method to_bytes

hail-fuzz/src/input.rs:153–179  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

151 }
152
153 pub fn to_bytes(&self) -> Vec<u8> {
154 let mut headers: Vec<_> = self
155 .streams
156 .iter()
157 .filter(|(_, data)| !data.bytes.is_empty())
158 .map(|(addr, data)| (*addr, data.bytes.len() as u64))
159 .collect();
160 headers.sort_unstable();
161
162 // Output format:
163 //
164 // FILE_HEADER
165 // number of mmio addresses: u32le,
166 // [(mmio1.address: u64le, mmio1.len: u64le), ...],
167 // [mmio1.bytes...]
168 let mut out = FILE_HEADER.to_vec();
169 out.extend_from_slice(&(headers.len() as u32).to_le_bytes());
170 for (addr, len) in &headers {
171 out.extend_from_slice(&addr.to_le_bytes());
172 out.extend_from_slice(&len.to_le_bytes());
173 }
174
175 for (addr, _) in headers {
176 out.extend_from_slice(&self.streams[&addr].bytes);
177 }
178 out
179 }
180
181 pub fn from_bytes(buf: &[u8]) -> Option<Self> {
182 use byteorder::{ReadBytesExt, LE};

Callers 6

saveMethod · 0.80
maybe_saveMethod · 0.80
fuzz_oneMethod · 0.80
validate_last_execFunction · 0.80
modify_inputFunction · 0.80
endMethod · 0.80

Calls 2

is_emptyMethod · 0.80
lenMethod · 0.45

Tested by

no test coverage detected