For consistency with fields(), validate the value (at least to some extent)
before passing it to C.

Signed-off-by: Paolo Bonzini <[email protected]>
---
 rust/migration/src/vmstate.rs | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/rust/migration/src/vmstate.rs b/rust/migration/src/vmstate.rs
index 6a89769984f..22799dffdc7 100644
--- a/rust/migration/src/vmstate.rs
+++ b/rust/migration/src/vmstate.rs
@@ -674,6 +674,9 @@ pub const fn fields(mut self, fields: &'static 
[VMStateField]) -> Self {
 
     #[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
-- 
2.51.0


Reply via email to