зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1400513 - u2f-hid-rs: fuzzers should use a deterministic cmd byte r=jcj
Summary: We're currently using the thread_rng to derive a cmd byte for the U2F protocol fuzzers. That of course should rather be derived deterministically from the input handed to the fuzzing target. Bug #: 1400513 Differential Revision: https://phabricator.services.mozilla.com/D61
This commit is contained in:
Родитель
efb7d369f2
Коммит
cd9cddcc94
Двоичные данные
dom/webauthn/u2f-hid-rs/fuzz/corpus/u2f_read/3031b026f0eb80bc03d05be97b3cef550913a3d4
Normal file
Двоичные данные
dom/webauthn/u2f-hid-rs/fuzz/corpus/u2f_read/3031b026f0eb80bc03d05be97b3cef550913a3d4
Normal file
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичные данные
dom/webauthn/u2f-hid-rs/fuzz/corpus/u2f_read/7dc504e4505d6b4d3465aeb7bdf59702676a54cd
Normal file
Двоичные данные
dom/webauthn/u2f-hid-rs/fuzz/corpus/u2f_read/7dc504e4505d6b4d3465aeb7bdf59702676a54cd
Normal file
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичные данные
dom/webauthn/u2f-hid-rs/fuzz/corpus/u2f_read/a05810d808f44249ae8ecfeadc59e5d8f7e55fb8
Normal file
Двоичные данные
dom/webauthn/u2f-hid-rs/fuzz/corpus/u2f_read/a05810d808f44249ae8ecfeadc59e5d8f7e55fb8
Normal file
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичный файл не отображается.
Двоичные данные
dom/webauthn/u2f-hid-rs/fuzz/corpus/u2f_read_write/afcb12f9dddb1ed0bb06d6372e91b2707cd764d1
Normal file
Двоичные данные
dom/webauthn/u2f-hid-rs/fuzz/corpus/u2f_read_write/afcb12f9dddb1ed0bb06d6372e91b2707cd764d1
Normal file
Двоичный файл не отображается.
|
@ -4,10 +4,8 @@
|
|||
|
||||
#![no_main]
|
||||
#[macro_use] extern crate libfuzzer_sys;
|
||||
extern crate rand;
|
||||
extern crate u2fhid;
|
||||
|
||||
use rand::{thread_rng, Rng};
|
||||
use std::{cmp, io};
|
||||
|
||||
use u2fhid::{CID_BROADCAST, HID_RPT_SIZE};
|
||||
|
@ -59,7 +57,10 @@ impl<'a> U2FDevice for TestDevice<'a> {
|
|||
}
|
||||
|
||||
fuzz_target!(|data: &[u8]| {
|
||||
let mut dev = TestDevice::new(data);
|
||||
let cmd = thread_rng().gen::<u8>();
|
||||
let _ = sendrecv(&mut dev, cmd, data);
|
||||
if data.len() > 0 {
|
||||
let cmd = data[0];
|
||||
let data = &data[1..];
|
||||
let mut dev = TestDevice::new(data);
|
||||
let _ = sendrecv(&mut dev, cmd, data);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -4,10 +4,8 @@
|
|||
|
||||
#![no_main]
|
||||
#[macro_use] extern crate libfuzzer_sys;
|
||||
extern crate rand;
|
||||
extern crate u2fhid;
|
||||
|
||||
use rand::{thread_rng, Rng};
|
||||
use std::{cmp, io};
|
||||
|
||||
use u2fhid::{CID_BROADCAST, HID_RPT_SIZE};
|
||||
|
@ -60,8 +58,11 @@ impl U2FDevice for TestDevice {
|
|||
}
|
||||
|
||||
fuzz_target!(|data: &[u8]| {
|
||||
let mut dev = TestDevice::new();
|
||||
let cmd = thread_rng().gen::<u8>();
|
||||
let res = sendrecv(&mut dev, cmd, data);
|
||||
assert_eq!(data, &res.unwrap()[..]);
|
||||
if data.len() > 0 {
|
||||
let cmd = data[0];
|
||||
let data = &data[1..];
|
||||
let mut dev = TestDevice::new();
|
||||
let res = sendrecv(&mut dev, cmd, data);
|
||||
assert_eq!(data, &res.unwrap()[..]);
|
||||
}
|
||||
});
|
||||
|
|
Загрузка…
Ссылка в новой задаче