commit | 0e9b0ad45b43e638f9334919cfc7a902a87663e0 | [log] [tgz] |
---|---|---|
author | jeremy marchand <jeremy.marchand@etu.u-bordeaux.fr> | Wed Apr 24 01:06:29 2024 +0200 |
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | Thu Apr 25 01:23:00 2024 +0200 |
tree | f3c076b9373ced88fe52aa5b0d9b5d5d02abfa5a | |
parent | b5f4b774b161bdfcc818bb49a91fb655a5a775f7 [diff] |
First attempt at fuzzing with libFuzzer based on @elmarco work The slirp_fuzz_ip_header harness should be working and is a basic example of a custom mutator focusing on part of the input. The slirp_fuzz_udp harness needs a bit of work to calculate the checksum properly. The code can be built using `meson build` followed by `ninja -C build`, the current meson.build file is not suitable with a general usage. To run the fuzzing code just run `build/fuzzing/fuzz-ip-header fuzzing/IN -detect_leaks=0`, crash will be sent to current folder and new input will go directly in the `IN` folder. The main point to focus on to improve the fuzzing should be generating a better corpus.
libslirp is a user-mode networking library used by virtual machines, containers or various tools.
A C compiler, meson and glib2 development libraries.
(see also .gitlab-ci.yml DEPS variable for the list of dependencies on Fedora)
You may build and install the shared library with meson:
meson build ninja -C build install
And configure QEMU with --enable-slirp=system to link against it.
(QEMU may build with the submodule static library using --enable-slirp=git)
Unfortunately, there are no automated tests available.
You may run QEMU -net user
linked with your development version.
Feel free to open issues on the project issues page.
You may clone the gitlab project and create a merge request.
Contributing with gitlab allows gitlab workflow, tracking issues, running CI etc.
Alternatively, you may send patches to slirp@lists.freedesktop.org mailing list.
We intend to use libtool's versioning for the shared libraries and use SemVer for project versions.
For the versions available, see the tags on this repository.
See the COPYRIGHT file for details.