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

Commit fa83e336 authored by Harry Cutts's avatar Harry Cutts
Browse files

InputVerifier: add panic message for source conversion

We've seen a crash due to this failing, without many details on why, so
add an explicit check for the conversion with a more descriptive message
for next time.

Bug: 397706159
Test: modify InputVerifier.cpp to pass an invalid source, enable
      verification, and check that any input event causes a panic with
      the appropriate message:
      $ adb shell 'stop && setprop log.tag.InputDispatcherVerifyEvents
                                   DEBUG && start'
Flag: EXEMPT log only update
Change-Id: I0aa07cd14c8afdcd204daa0fb4660466e6c0be42
parent d442304a
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -133,6 +133,12 @@ fn process_movement(
    flags: u32,
    button_state: u32,
) -> String {
    let Some(converted_source) = Source::from_bits(source) else {
        panic!(
            "The conversion of source 0x{source:08x} failed, please check if some sources have not \
             been added to Source."
        );
    };
    let Some(motion_flags) = MotionFlags::from_bits(flags) else {
        panic!(
            "The conversion of flags 0x{:08x} failed, please check if some flags have not been \
@@ -167,7 +173,7 @@ fn process_movement(
    }
    let result = verifier.process_movement(NotifyMotionArgs {
        device_id: DeviceId(device_id),
        source: Source::from_bits(source).unwrap(),
        source: converted_source,
        action: motion_action,
        pointer_properties,
        flags: motion_flags,