]> git.ipfire.org Git - thirdparty/qemu.git/commitdiff
rust: migration: validate termination of subsection arrays
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 25 Sep 2025 08:41:12 +0000 (10:41 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 14 Oct 2025 09:03:59 +0000 (11:03 +0200)
For consistency with fields(), validate the value (at least to some extent)
before passing it to C.

Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
rust/migration/src/vmstate.rs

index a6ee7e938531dfcd3482b0778f09db06770727c9..6b0f96c4da8d534eb41c53e8e382e7b8ab290cc1 100644 (file)
@@ -675,6 +675,9 @@ impl<T> VMStateDescriptionBuilder<T> {
 
     #[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