Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a5fe00b authored by Sonny Sasaka's avatar Sonny Sasaka
Browse files

Floss: Handle failed parsing vec from D-Bus

If client sends the wrong array format, we should fail gracefully
instead of crashing.

Bug: 193685325
Tag: #floss
Test: Manual - Run floss on Linux

Change-Id: I62b082177b00071348b80ffe6137fe0cbc5b8b49
parent 97914313
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -983,7 +983,10 @@ pub fn generate_dbus_arg(_item: TokenStream) -> TokenStream {
                _name: String,
            ) -> Result<Self::RustType, Box<dyn Error>> {
                let mut vec: Vec<T> = vec![];
                let mut iter = arg.as_iter().unwrap();
                let mut iter = arg.as_iter().ok_or(Box::new(DBusArgError::new(format!(
                    "Failed parsing array for `{}`",
                    _name
                ))))?;
                let mut val = iter.next();
                while !val.is_none() {
                    let arg = val.unwrap().box_clone();