INNER CODE UNIT · Rust
limited
Augani/dory · dory-core/ffi/src/lib.rs:113
let mut limited = decoder.take(maximum_output_bytes + 1);
let initial_capacity = usize::try_from(maximum_output_bytes.min(16 * 1024 * 1024))
.map_err(|_| "maximum output does not fit this platform".to_string())?;
let mut output = Vec::with_capacity(initial_capacity);
limited
.read_to_end(&mut output)
.map_err(|error| format!("invalid or truncated zstd payload: {error}"))?;
if output.len() as u64 > maximum_output_bytes {
return Err(format!(
"decompressed payload exceeds {maximum_output_bytes} bytes"
));
}
if output.is_empty() {
return Err("decompressed payload is empty".to_string());
}
Ok(output)
}