diff options
Diffstat (limited to 'src/rust/uci/uci_hmsgs.rs')
-rw-r--r-- | src/rust/uci/uci_hmsgs.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/rust/uci/uci_hmsgs.rs b/src/rust/uci/uci_hmsgs.rs index 67c2c75..9b2f57d 100644 --- a/src/rust/uci/uci_hmsgs.rs +++ b/src/rust/uci/uci_hmsgs.rs @@ -47,6 +47,11 @@ pub fn build_multicast_list_update_cmd( address_list: &[i16], sub_session_id_list: &[i32], ) -> Result<SessionUpdateControllerMulticastListCmdBuilder, UwbErr> { + if usize::from(no_of_controlee) != address_list.len() + || usize::from(no_of_controlee) != sub_session_id_list.len() + { + return Err(UwbErr::InvalidArgs); + } let mut controlees = Vec::new(); for i in 0..no_of_controlee { controlees.push(Controlee { @@ -66,6 +71,9 @@ pub fn build_set_app_config_cmd( no_of_params: u32, mut app_configs: &[u8], ) -> Result<SessionSetAppConfigCmdBuilder, UwbErr> { + if no_of_params != app_configs.len().try_into()? { + return Err(UwbErr::InvalidArgs); + } let mut tlvs = Vec::new(); for _ in 0..no_of_params { let tlv = AppConfigTlv::parse(app_configs)?; |