Romain Malmain c944a70056
Linux kernel fuzzing example (#2496)
* linux kernel (x509_cert) and process fuzzing example

* rework filters

* update to latest qemu

* working for process and kernel fuzzing

* new i2s mutator for binary only fuzzers

* refactoring modules with new filtering interface

* add state as parameter of harness

* hide unused global in usermode

* Script for stub bindings generation

* do not try to check whether it is worth generating the bindings, always
  generate when the env variable is on.

* add taplo to fmt_all.sh

* Moved fuzzers (again) in a target-centric way.

* fix rust 2024 warnings.

* new libafl_qemu harness structure.

* rename qemu_systemmode into qemu_baremetal

* fix qemu baremetal makefile

* fix formatter

---------

Co-authored-by: Toka <tokazerkje@outlook.com>
2024-09-26 14:29:33 +02:00

26 lines
830 B
Rust

use std::{env, process::Command};
fn main() {
let current_dir = env::current_dir().unwrap();
let lcms_dir = current_dir.join("Little-CMS");
if !lcms_dir.exists() {
println!("cargo:warning=Downloading Little-CMS");
// Clone the Little-CMS repository if the directory doesn't exist
let status = Command::new("git")
.args(&[
"clone",
"https://github.com/mm2/Little-CMS",
lcms_dir.to_str().unwrap(),
])
.status()
.expect("Failed to clone Little-CMS repository");
if !status.success() {
panic!("Failed to clone Little-CMS repository");
}
}
// Tell Cargo that if the given file changes, to rerun this build script
println!("cargo:rerun-if-changed=build.rs");
}