157 Commits

Author SHA1 Message Date
Addison Crump
56b37bb4bd
Improve the libafl_libfuzzer corpus (#1539)
* improved libfuzzer corpus

* use .into() for converting ids to usize

* oops

* fix warning about unused arg

* fix some lingering CI errors

* actually save the last lmao
2023-11-03 17:33:38 +01:00
Addison Crump
fd98eabfbf
clamp last to infinity to handle rare imprecision issues (#1532) 2023-11-03 17:32:48 +01:00
David CARLIER
2e980ca08d
bolts: initial haiku support (#1643) 2023-11-03 17:18:53 +01:00
Dongjia "toka" Zhang
f34bab2486
Fix CI (#1636) 2023-10-25 16:10:10 +02:00
Andrea Fioraldi
406e77faa9
QEMU Asan backtrace and report (#1628)
* wip

* ExtractFirstRefMutType

* Asan report with backtrace

* Print asan reports and fix backtraces in libafl qemu

* print context

* enlarge redzone

* nopstate

* fix

* reproducer

* clippy

* clippy

* Fix android

* Crash hook
2023-10-25 15:58:32 +02:00
Benjamin Beyret
1b7e1da809
Fix typo in SimpleStdoutLogger comment. (#1627) 2023-10-12 17:03:38 +02:00
Andrea Fioraldi
f6ba9de044
Add SplitBorrow trait to split borrow tuple_list elements (#1624)
* Add SplitBorrow trait to split borrow tuple_list elements

* clippy
2023-10-12 10:16:41 +02:00
Andrea Fioraldi
4c17da00b0
Clipped Fixxy (#1622)
* clippy fix

* fix

* fix

* it works

* imports
2023-10-11 21:19:30 +02:00
Andrea Fioraldi
6986317a03
Add iter() to owned slice (#1620) 2023-10-11 14:13:26 +02:00
Andrea Fioraldi
47cd4dfea6
Break on timeout in QEMU system mode (#1619)
* Break on timeout in QEMU system mode

* fix

* fix

* fix
2023-10-11 14:01:18 +02:00
Andrea Fioraldi
31f4669794
Autodetect llvm-config for QEMU bindings generation (#1610)
* Autodetect llvm-config for QEMU bindings generation

* fix ci

* Fix signal handlers without ucontext pointer

* ci
2023-10-10 15:26:32 +02:00
Dongjia "toka" Zhang
f17e49e9aa
Remove warnings (#1609)
* two falgs

* UNIX ONLY FLAGS

* moa

* FMT
2023-10-05 15:25:55 +02:00
Andrea Fioraldi
cffbf069d2
Call the original QEMU user crash handler in libafl_qemu (#1575)
* Call the original QEMU user crash handler in libafl_qemu

* Return if real crash or not

* merge

* Fix singal handlers in libafl and libafl_qemu

* doc and clippy

* clippy

* clippy

* clippy

* slirp

* fix

* fix system
2023-10-05 15:24:21 +02:00
Dominik Maier
25409119ff
Make Signals compatible with nix, implement TryFrom<&str> (#1599)
* Make our signals compatible to nix Signals

* no-default nix
2023-10-03 17:33:45 +09:00
Dongjia "toka" Zhang
60b3408737
Update dependencies (#1588)
* update

* downgrade some
2023-10-01 07:20:23 -05:00
Abc Xyz
6f67919622
fix(minibsod): allow dump_registers and write_crash for Android x86_64 (#1577) 2023-09-29 17:10:15 -04:00
Dominik Maier
f70a16a09a
Fix unsoundness for misaligned map observers (#1530)
* Fix unsoundness for misaligned map observers

* nits

* clippy

* Make sure beginning of the page is aligned
2023-09-20 18:25:37 +02:00
Addison Crump
8f6efe993d
Address recent clippy changes; build clippy in debug instead of release for perf (#1516) 2023-09-19 00:42:46 +02:00
Fabian Freyer
27333f9ce8
libafl_bolts fix potentially unaligned ucontexts in signal handler (#1520)
When entering a signal handler, the ucontext_t is not necessarily 0x10-aligned, so we need to use read_unaligned instead of dereferencing.
2023-09-18 23:17:54 +02:00
David CARLIER
b090bc7b4b
bolts: openbsd (snapshot) clippy fix (#1502) 2023-09-06 03:39:43 +02:00
David CARLIER
1b6ef52a4e
bolts core affinity illumos clippy fixes (#1497) 2023-09-02 21:56:22 +02:00
David CARLIER
7e5a1dba05
bolts linux arm64 clippy fix build (#1496) 2023-09-02 01:35:05 +02:00
David CARLIER
d0d378c174
bolts write_minibsod solaris version (#1494) 2023-08-31 22:48:43 +02:00
Andrea Fioraldi
00033426e7
Bump to 0.11.1 (#1491) 2023-08-31 15:07:31 +02:00
Addison Crump
9149d69699
Fixes for serdeany_autoreg (#1479)
* fixes for serdeany_autoreg

* fmt

* yet more docs

---------

Co-authored-by: Dominik Maier <dmnk@google.com>
2023-08-30 00:13:50 +02:00
Alexander Qi
51e4d814fb
bolts: Fix shmem leak when Drop-ing CommonUnixShMem (#1484) 2023-08-29 18:10:59 +02:00
Dominik Maier
61ad4a6ee8
bolts: Make xxh3 hashing optional with xxh3 feature flag (else use ahash for everything) (#1478)
* Make xxh3 hashing optional (and default to ahash)

* make xxh3 default anyway

* move import

* fix no_alloc

* No ahash without alloc

* fix import

* Keep xxh3 as default for libafl as well

* no randomness for xoshiro
2023-08-29 16:22:46 +02:00
Dominik Maier
7d2c854b71
Introduce document-features feature (#1477) 2023-08-29 12:40:35 +02:00
Andrea Fioraldi
7dd7c1a485
Bump to 0.11.0 (#1469)
Co-authored-by: Dominik Maier <domenukk@gmail.com>
2023-08-28 15:36:43 +02:00
Dominik Maier
b45985c76b
Less pub in LLMP (#1470)
* Less pub in LLMP

* add mut to docstring

* fix eample
2023-08-28 13:18:58 +02:00
Dominik Maier
1357b9f310
Add Broker.peek_next_client_id (#1468)
* Add Broker::next_client_id

* rename to peek_

* Undo change, probably not better
2023-08-28 09:00:05 +02:00
Dominik Maier
0a0c4639a6
Replace manual binary search with stdlib (#1466) 2023-08-27 23:12:36 +02:00
David CARLIER
fc6df5ef47
llmp: switch to binary search (#1465) 2023-08-26 13:52:14 +02:00
David CARLIER
4a96354276
bolts: fix netbsd/openbsd clippy (#1459) 2023-08-24 21:41:44 +02:00
David CARLIER
209d38a768
bolts: disable build for rust < 1.70 proposal. (#1460)
mostly due std::cell namespace introduction in the 1.70 version.
as rust versions evolve fast enough, it might be easier than
having conditional dependency on he old once_cell crate.
2023-08-24 21:41:26 +02:00
Addison Crump
862de53cf6
Full libfuzzer shimming (for cargo-fuzz libfuzzer alternative and other use cases) (#981)
* squash libfuzzer edits

* fixup: compat with custom mutators

* use tui flag

* add introspection support

* use libfuzzer dep now that we've merged

* force input loading

* some fixes

* begin docs, impl shrink

* make whole-archive conditional and not default

* make more copies of counters maps

* lol, remember to add the observer

* make size edge map observer an observer

* fixup: make def of run driver conditional

* add sanity checks for insertion

* revert silencing of forks

* add experimental tmin support; add default asan flags

* use default options instead of specifying our own

* implement lockless mode

* fix merge

* fixup lockless corpus

* fixup for generalisation

* remove erroneous drop_in_place

* improve error logging in the case of corpus loading failure

* ok, use lock files 😔

* fix tmin

* implement merge (again); fix rare cases with maps being too small

* implement a scheduler for removing excess

* implement a walking strategy for corpus loading for large corpora

* revert filename parameter; rename and remove duplicates

* various cleanup and clippy satisfaction

* fix no_std tests

* clang-format

* expand and satisfy the clippy gods

* fix sanitizer_ifaces bindgen for no_std

* fix wasm fuzzer

* fixup clippy script

* rename and provide a small amount of explanation for sanitizer_interfaces

* fixup: HasLastReportTime

* fix clippy oddities

* restrict clippy checks to linux-only for libafl_libfuzzer_runtime

* name the mutators

* format

* fix clippy warning

* hope docker is fixed

* fix cmin lint

* clippy pass

* more docs

* more clippy

* fix remaining clippy complaints

* fix import

* miri fixes (no constructors executed)

* exclude libafl_libfuzzer from cargo-hack

* fix clippy check for sanitizer_interfaces

* fmt

* fix CI (?)

* deduplicate sancov 8bit for improved perf on ASAN

* merge 8bit coverage regions + comment out insane deduplication

* no erroring out on free hooks

* fixup for non-forking merge

* skip the corpus dir if we use it

* fixup: recent libafl changes and feature flags

* libafl_libfuzzer: use rust-lld for whole-archive feature

* clarify cause of failure

* mark unsafe

* clippy :cursed_cowboy:

* attempt to fix wasm

* spooky unknowable bug 👻

* more clippy lints

* clippy fix for merge

* use the version pin

* add unsafe to ::register

* Serdeany autoreg fix

* make type assert actionable

* miri fixes

---------

Co-authored-by: Dominik Maier <domenukk@gmail.com>
Co-authored-by: Dominik Maier <dmnk@google.com>
Co-authored-by: Mrmaxmeier <Mrmaxmeier@gmail.com>
2023-08-24 13:30:23 +02:00
Dominik Maier
f68fe95f09
Document features (#1453)
* Document features

* Fix doctest

* remove link

* <<<<head

* Fix doc links
2023-08-24 13:27:37 +02:00
Dominik Maier
e89e8dbaab
Remove dependencies, add doc.rs metadata (#1450)
* Remove dependency, add doc.rs metadata

* remove lazy_static

* even less lazy_static

* serial_test no default
2023-08-24 11:34:38 +02:00
Dominik Maier
2f840ef92d
Windows dependency upgrade (#1448)
* Windows dependency upgrade

* update windows

* fmt

* expect is not fun but what can you do

* fmt, clippy
2023-08-24 08:15:31 +02:00
Dominik Maier
454142c29e
Add bolts::math, make functions const, cleanup (#1444)
* Make some functions const

* fix isprint

* more const

* move integer_sqrt to bolts, use binary search, use u128 to handle extreme values

* Technically correct

* clippy

* u64 algo

* More test

* cumulative_distribution to in_place

* move calculate_cumulative_distribution_in_place to bolts

* clippy

* Move math stuff to bolts::math

* actually add math

* math?

* For some reason this fixes things, dunno

* fix builds?

* does that help?

* clippy ignores

* more clean clippy

* more cfg_attr
2023-08-23 21:12:39 +02:00
Manish Goregaokar
8f27b14eb8
Use postcard with default-features = false (#1446) 2023-08-23 19:53:25 +02:00
Dominik Maier
65ec23fd35
Update uds, remove unused features (#1447) 2023-08-23 19:52:59 +02:00
David CARLIER
389c7c6554
bolts: fix freebsd clippy warnings (#1442) 2023-08-23 01:32:34 +02:00
Andrea Fioraldi
0b43711dc9
Fix LLMP p2p + restart bug with CentralizedEventManager (#1389)
This commit rewrites the centralized manager to use a secondary broker, as p2p communication is unreliable during frequent restarts. A centralized launcher is introduced too.
2023-08-22 15:57:50 +02:00
David CARLIER
c6bfb07832
bolts write_minibsod netbsd implementation. (#1428)
pretty close to freebsd for the most part.
2023-08-20 12:01:04 +02:00
Dominik Maier
b0179b4498
Update some deps, clippy (#1422)
* More less default

* More clippy

* updated rangemap

* Clean up depencdencies

* Undo accidental remove

* Fix

* trying to fix qemu build

* hexagon be gone
2023-08-17 17:15:03 +02:00
David CARLIER
b5774b2275
write_minibsod for apple (#1425) 2023-08-15 20:16:07 +02:00
David CARLIER
bc42880274
minibsod, fix clippy warning (#1424) 2023-08-14 10:51:01 +02:00
David CARLIER
8f16001c47
minibsod::generate_minibsod openbsd implementation (#1420) 2023-08-13 20:36:13 +02:00
David CARLIER
698ebb6b35
libafl_bolts: fix musl build (#1421)
despite being present in the headers, getcontext is not implemented in
musl libc, most likely due to the fact it s a deprecated interface.
The only way around is having the third party libucontext apk package
installed.
2023-08-13 12:14:30 +02:00