Skip to content

libafl_targets: fix persistent mode for rust forkserver#3844

Open
friedbyalice wants to merge 11 commits into
AFLplusplus:mainfrom
friedbyalice:persistent-forkserver
Open

libafl_targets: fix persistent mode for rust forkserver#3844
friedbyalice wants to merge 11 commits into
AFLplusplus:mainfrom
friedbyalice:persistent-forkserver

Conversation

@friedbyalice

@friedbyalice friedbyalice commented Jun 13, 2026

Copy link
Copy Markdown

Description

Forkserver impl inside of libafl_targets should use WUNTRACED for waitpid in the ForkserverParent, otherwise it will get stuck when a persistent mode child raises SIGSTOP.

I assume persistent mode in the pure rust forkserver impl to be supported because there's already explicit support for persistent mode in it, this just fell through the cracks when looking at https://github.com/AFLplusplus/AFLplusplus/blob/82a149c3a4fcfa08373eb4837a453f8e7e1b0dde/instrumentation/afl-compiler-rt.o.c#L1754-L1755 .

The pr also includes a small test and a simple fuzzer example that checks that a pure rust forkserver impl is possible.

Ready to interactive rebase this to clean it up for review, and I'm appreciate if it was squashed if ever considered for merging.

I also cherry-picked #3841 , waiting for it to get merged.

Checklist

  • I have run ./scripts/precommit.sh and addressed all comments

@friedbyalice friedbyalice force-pushed the persistent-forkserver branch from b0ed585 to 70b8910 Compare June 14, 2026 23:35
@friedbyalice friedbyalice force-pushed the persistent-forkserver branch from 70b8910 to 171d63d Compare June 14, 2026 23:42
@friedbyalice friedbyalice marked this pull request as ready for review June 14, 2026 23:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants