From: Paolo Bonzini Date: Thu, 25 Sep 2025 08:41:12 +0000 (+0200) Subject: rust: migration: validate termination of subsection arrays X-Git-Tag: v10.2.0-rc1~64^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5b4fa9780728ba526f0529199ef90d6132a3faf2;p=thirdparty%2Fqemu.git rust: migration: validate termination of subsection arrays For consistency with fields(), validate the value (at least to some extent) before passing it to C. Reviewed-by: Zhao Liu Signed-off-by: Paolo Bonzini --- diff --git a/rust/migration/src/vmstate.rs b/rust/migration/src/vmstate.rs index a6ee7e9385..6b0f96c4da 100644 --- a/rust/migration/src/vmstate.rs +++ b/rust/migration/src/vmstate.rs @@ -675,6 +675,9 @@ impl VMStateDescriptionBuilder { #[must_use] pub const fn subsections(mut self, subs: &'static VMStateSubsections) -> Self { + if subs[subs.len() - 1].is_some() { + panic!("subsections are not terminated, use vmstate_subsections!"); + } let subs: *const Option<&bindings::VMStateDescription> = subs.as_ptr(); self.0.subsections = subs.cast::<*const bindings::VMStateDescription>(); self