BigPizzaV3/CodexPlusPlus · error
Dream Skin 主题包解包后超过 64 MiB 限制
Error message
Dream Skin 主题包解包后超过 64 MiB 限制
What it means
Zip-bomb guard in validate_and_read_package: the total bytes of all unpacked entries exceed 64 MiB. Even if the ZIP itself is under 32 MiB, a highly compressible archive could expand enormously; cumulative unpacked size is tracked and capped.
Source
Thrown at crates/codex-plus-core/src/dream_skin_package.rs:133
let base_name = name.rsplit('/').next().unwrap_or_default();
if base_name == ".DS_Store" || name.starts_with("__MACOSX/") {
entries.push((name, None));
continue;
}
if !ALLOWED_FILES.contains(&base_name) {
bail!("主题包包含不支持的文件:{name}");
}
let limit = file_limit(base_name);
let mut content = Vec::new();
file.take((limit + 1) as u64)
.read_to_end(&mut content)
.context("读取 Dream Skin ZIP 内容失败")?;
if content.is_empty() || content.len() > limit {
bail!("主题包文件 {name} 超过大小限制");
}
unpacked = unpacked.saturating_add(content.len());
if unpacked > UNPACKED_LIMIT {
bail!("Dream Skin 主题包解包后超过 64 MiB 限制");
}
entries.push((name, Some(content)));
}
let mut files = normalize_package_entries(entries)?;
let manifest_bytes = files
.remove("manifest.json")
.context("主题包缺少 manifest.json")?;
let theme_bytes = files
.remove("theme.json")
.context("主题包缺少 theme.json")?;
let css_bytes = files.remove("theme.css").context("主题包缺少 theme.css")?;
let image_name = ["background.webp", "background.jpg", "background.png"]
.iter()
.find(|name| files.contains_key(**name))
.map(|name| (*name).to_string())
.context("主题包必须包含一个背景图片")?;View on GitHub (pinned to f2074595a2)
Solutions
- Rebuild the package so unpacked content totals under 64 MiB
- Remove or compress oversized assets in the ZIP
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/codex-plus-core/src/dream_skin_package.rs:133 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of BigPizzaV3/CodexPlusPlus@f2074595a2 (2026-08-23).
Data as JSON: /api/errors/db103f8e8d0c19bd.
Report an issue: GitHub.