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)
}

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…