From 963c96cf8b38a2a3e4b6e8c8dd64260d1eea2526 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dav=C3=AD=C3=B0=20Steinn=20Geirsson?= Date: Wed, 25 Mar 2026 22:06:32 +0000 Subject: [PATCH] feat: add fuzz_urb_uac target Co-Authored-By: Claude Opus 4.6 (1M context) --- lib/fuzz/fuzz_targets/fuzz_urb_uac.rs | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 lib/fuzz/fuzz_targets/fuzz_urb_uac.rs diff --git a/lib/fuzz/fuzz_targets/fuzz_urb_uac.rs b/lib/fuzz/fuzz_targets/fuzz_urb_uac.rs new file mode 100644 index 0000000..b64dbb3 --- /dev/null +++ b/lib/fuzz/fuzz_targets/fuzz_urb_uac.rs @@ -0,0 +1,21 @@ +#![no_main] + +use libfuzzer_sys::fuzz_target; +use std::sync::Arc; +use usbip_rs::mock::MockSocket; + +fuzz_target!(|data: &[u8]| { + let rt = tokio::runtime::Builder::new_multi_thread() + .enable_all() + .build() + .unwrap(); + rt.block_on(async { + let device = usbip_rs::uac::build_uac_loopback_device().unwrap(); + + let mock = MockSocket::new(data.to_vec()); + let output = mock.output_handle(); + let _ = usbip_rs::handle_urb_loop(mock, Arc::new(device)).await; + let output_bytes = output.lock().unwrap(); + usbip_rs::fuzz_helpers::assert_usbip_responses_valid(&output_bytes); + }); +});