* lock bitbybit < 1.3.3 and revert #2768 * lock to 1.3.2
This commit is contained in:
parent
f9b643e7b3
commit
b7c7465be4
@ -80,11 +80,13 @@ libafl_benches = { path = "./utils/libafl_benches", version = "0.14.1", default-
|
|||||||
libafl_jumper = { path = "./utils/libafl_jumper", version = "0.14.1", default-features = false }
|
libafl_jumper = { path = "./utils/libafl_jumper", version = "0.14.1", default-features = false }
|
||||||
|
|
||||||
# External deps
|
# External deps
|
||||||
ahash = { version = "0.8.11", default-features = false } # The hash function already used in hashbrown
|
ahash = { version = "0.8.11", default-features = false } # The hash function already used in hashbrown
|
||||||
arbitrary-int = "1.2.7" # arbitrary sized integers, useful in combination with bitfields (bitbybit crate)
|
arbitrary-int = "1.2.7" # arbitrary sized integers, useful in combination with bitfields (bitbybit crate)
|
||||||
backtrace = { version = "0.3.74", default-features = false } # Used to get the stacktrace in StacktraceObserver
|
backtrace = { version = "0.3.74", default-features = false } # Used to get the stacktrace in StacktraceObserver
|
||||||
bindgen = "0.71.1"
|
bindgen = "0.71.1"
|
||||||
bitbybit = "1.3.3" # bitfields, use this for bit fields and bit enums
|
# 2024-12-16: bitbybit 1.3.3 is leading CI to fail due to missing docs.
|
||||||
|
# fixme: Change this to 1.3.3 when the issue https://github.com/danlehmann/bitfield/issues/66 is resolved.
|
||||||
|
bitbybit = "=1.3.2" # bitfields, use this for bit fields and bit enums
|
||||||
clap = "4.5.18"
|
clap = "4.5.18"
|
||||||
cc = "1.1.21"
|
cc = "1.1.21"
|
||||||
cmake = "0.1.51"
|
cmake = "0.1.51"
|
||||||
|
@ -5,6 +5,8 @@ use core::{
|
|||||||
ops::{Deref, DerefMut},
|
ops::{Deref, DerefMut},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
use arbitrary_int::{u1, u4, u5, u6};
|
||||||
|
use bitbybit::bitfield;
|
||||||
use hashbrown::HashMap;
|
use hashbrown::HashMap;
|
||||||
use libafl_bolts::{ownedref::OwnedRefMut, AsSlice, HasLen, Named};
|
use libafl_bolts::{ownedref::OwnedRefMut, AsSlice, HasLen, Named};
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
@ -403,47 +405,40 @@ impl AFLppCmpValuesMetadata {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[allow(missing_docs)] // 2024-12-15: bitfield is leading CI to fail due to missing docs.
|
/// Comparison header, used to describe a set of comparison values efficiently.
|
||||||
mod aflpp_cmplog_header {
|
///
|
||||||
use arbitrary_int::{u1, u4, u5, u6};
|
/// # Bitfields
|
||||||
use bitbybit::bitfield;
|
///
|
||||||
|
/// - hits: The number of hits of a particular comparison
|
||||||
/// Comparison header, used to describe a set of comparison values efficiently.
|
/// - id: Unused by ``LibAFL``, a unique ID for a particular comparison
|
||||||
|
/// - shape: Whether a comparison is u8/u8, u16/u16, etc.
|
||||||
|
/// - type_: Whether the comparison value represents an instruction (like a `cmp`) or function
|
||||||
|
/// call arguments
|
||||||
|
/// - attribute: OR-ed bitflags describing whether the comparison is <, >, =, <=, >=, or transform
|
||||||
|
/// - overflow: Whether the comparison overflows
|
||||||
|
/// - reserved: Reserved for future use
|
||||||
|
#[bitfield(u16)]
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct AFLppCmpLogHeader {
|
||||||
|
/// The number of hits of a particular comparison
|
||||||
///
|
///
|
||||||
/// # Bitfields
|
/// 6 bits up to 63 entries, we have CMP_MAP_H = 32 (so using half of it)
|
||||||
|
#[bits(0..=5, r)]
|
||||||
|
hits: u6,
|
||||||
|
/// Whether a comparison is u8/u8, u16/u16, etc.
|
||||||
///
|
///
|
||||||
/// - hits: The number of hits of a particular comparison
|
/// 31 + 1 bytes max
|
||||||
/// - id: Unused by ``LibAFL``, a unique ID for a particular comparison
|
#[bits(6..=10, r)]
|
||||||
/// - shape: Whether a comparison is u8/u8, u16/u16, etc.
|
shape: u5,
|
||||||
/// - type_: Whether the comparison value represents an instruction (like a `cmp`) or function
|
/// Whether the comparison value represents an instruction (like a `cmp`) or function call
|
||||||
/// call arguments
|
/// arguments
|
||||||
/// - attribute: OR-ed bitflags describing whether the comparison is <, >, =, <=, >=, or transform
|
///
|
||||||
/// - overflow: Whether the comparison overflows
|
/// 2: cmp, rtn
|
||||||
/// - reserved: Reserved for future use
|
#[bit(11, r)]
|
||||||
#[bitfield(u16)]
|
type_: u1,
|
||||||
#[derive(Debug)]
|
/// OR-ed bitflags describing whether the comparison is <, >, =, <=, >=, or transform
|
||||||
pub struct AFLppCmpLogHeader {
|
///
|
||||||
/// The number of hits of a particular comparison
|
/// 16 types for arithmetic comparison types
|
||||||
///
|
#[bits(12..=15, r)]
|
||||||
/// 6 bits up to 63 entries, we have CMP_MAP_H = 32 (so using half of it)
|
attribute: u4,
|
||||||
#[bits(0..=5, r)]
|
|
||||||
hits: u6,
|
|
||||||
/// Whether a comparison is u8/u8, u16/u16, etc.
|
|
||||||
///
|
|
||||||
/// 31 + 1 bytes max
|
|
||||||
#[bits(6..=10, r)]
|
|
||||||
shape: u5,
|
|
||||||
/// Whether the comparison value represents an instruction (like a `cmp`) or function call
|
|
||||||
/// arguments
|
|
||||||
///
|
|
||||||
/// 2: cmp, rtn
|
|
||||||
#[bit(11, r)]
|
|
||||||
type_: u1,
|
|
||||||
/// OR-ed bitflags describing whether the comparison is <, >, =, <=, >=, or transform
|
|
||||||
///
|
|
||||||
/// 16 types for arithmetic comparison types
|
|
||||||
#[bits(12..=15, r)]
|
|
||||||
attribute: u4,
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
pub use aflpp_cmplog_header::AFLppCmpLogHeader;
|
|
||||||
|
@ -695,7 +695,6 @@ impl IntelPTBuilder {
|
|||||||
/// Perf event config for `IntelPT`
|
/// Perf event config for `IntelPT`
|
||||||
///
|
///
|
||||||
/// (This is almost mapped to `IA32_RTIT_CTL MSR` by perf)
|
/// (This is almost mapped to `IA32_RTIT_CTL MSR` by perf)
|
||||||
#[allow(missing_docs)] // 2024-12-15: bitfield is leading CI to fail due to missing docs.
|
|
||||||
#[cfg(target_os = "linux")]
|
#[cfg(target_os = "linux")]
|
||||||
#[bitfield(u64, default = 0)]
|
#[bitfield(u64, default = 0)]
|
||||||
struct PtConfig {
|
struct PtConfig {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user