brintos

brintos / linux-shallow public Read only

0
0
Text · 552 B · caa7175 Raw
22 lines · rust
1// SPDX-License-Identifier: GPL-2.02 3//! Helper crate for KASAN testing.4//!5//! Provides behavior to check the sanitization of Rust code.6 7use core::ptr::addr_of_mut;8use kernel::prelude::*;9 10/// Trivial UAF - allocate a big vector, grab a pointer partway through,11/// drop the vector, and touch it.12#[no_mangle]13pub extern "C" fn kasan_test_rust_uaf() -> u8 {14    let mut v: Vec<u8> = Vec::new();15    for _ in 0..4096 {16        v.push(0x42, GFP_KERNEL).unwrap();17    }18    let ptr: *mut u8 = addr_of_mut!(v[2048]);19    drop(v);20    unsafe { *ptr }21}22