fix(ecstore): guard free-version decommission conflicts

This commit is contained in:
overtrue
2026-08-23 07:41:17 +08:00
parent bef7e5bb68
commit 7985251b67
5 changed files with 450 additions and 12 deletions
+4
View File
@@ -462,6 +462,10 @@ impl FileMeta {
};
if let Some(fidx) = existing_idx {
let existing = self.versions[fidx].parse_version_meta()?;
if existing.free_version() != version.free_version() {
return Err(Error::other("cannot replace a free version with a non-free version"));
}
return self.set_idx(fidx, version);
}