From b9b0bd73958cf66caddcd2786c255ff2ccf21552 Mon Sep 17 00:00:00 2001 From: Matt Bilker Date: Thu, 13 Nov 2025 16:02:27 +0000 Subject: [PATCH] lib: use bit-shifted device ID --- src/lib.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 7de779c..c2b68b9 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -488,13 +488,13 @@ pub unsafe extern "C" fn ioctl(fd: RawFd, request: c_ulong, argp: *mut c_void) - let orig_device_id = params.pci_device_id; let orig_sub_system_id = params.pci_sub_system_id; + let actual_device_id = (orig_device_id & 0xffff0000) >> 16; + let actual_sub_system_id = (orig_sub_system_id & 0xffff0000) >> 16; + let mapped_id = CONFIG .pci_info_map .as_ref() - .and_then(|pci_info_map| pci_info_map.get(&U32(orig_device_id))); - - let actual_device_id = (orig_device_id & 0xffff0000) >> 16; - let actual_sub_system_id = (orig_sub_system_id & 0xffff0000) >> 16; + .and_then(|pci_info_map| pci_info_map.get(&U32(actual_device_id))); let (spoofed_devid, spoofed_subsysid) = if let Some(mapping) = mapped_id { (mapping.device_id as u32, mapping.sub_system_id as u32)