heic-rs 0.1.2 to 0.1.4 fix six panics on malformed files, found by fuzzing: four in release builds (a uuid box too small for its extended type, a block starting right of the picture, a conformance window larger than the picture, and a reference row below the picture) and two with overflow checks on (a PCM bit depth above the sample bit depth, a slice QP out of range). The API, MSRV and output are unchanged. Mirrors the same change in PhotoCraft's photocraft-heif.
27 lines
1.2 KiB
TOML
27 lines
1.2 KiB
TOML
[package]
|
|
name = "lightcraft-heif"
|
|
description = "Optional HEIF/HEIC still-image decoder for LightCraft (heic-rs for the container and HEVC, libheif-matching colour conversion, panic-guarded)"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
|
|
[dependencies]
|
|
# Pure Rust, no unsafe. Pinned exactly: a young, single-owner crate that parses untrusted files;
|
|
# moving the pin is a reviewed change (re-run the heif tests and the codecs corpus tests).
|
|
# Mirrors PhotoCraft's photocraft-heif (same team, same decision): heic-rs was chosen over the
|
|
# other permissive candidates (heif-oxide's HEVC decoder, rust_h265, follows FFmpeg's (LGPL)
|
|
# code structure; gamut-heic has no HEVC decoder of its own).
|
|
heic-rs = { version = "=0.1.4", default-features = false, features = ["std"] }
|
|
|
|
# The tiles of a HEIC photo decode in parallel on native; wasm stays single-threaded.
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
|
|
heic-rs = { version = "=0.1.4", default-features = false, features = ["std", "parallel"] }
|
|
rayon = { workspace = true }
|
|
|
|
[features]
|
|
# `lightcraft_heif::testdata`: lossless synthetic HEIF files, for the tests of the crates above.
|
|
testdata = []
|
|
|
|
[lints]
|
|
workspace = true
|