Commit Graph

913 Commits

Author SHA1 Message Date
c8d1b66af3 add AFL_FORKSRV_UID and AFL_FORKSRV_GID env vars 2025-06-04 15:21:02 +02:00
2e7f191f3b extract function to resize map buffers 2025-05-25 09:33:34 +08:00
be00ea9f00 Merge pull request #2446 from kcwu/fix-save_if_interesting
fix save_if_interesting
2025-05-24 12:43:26 +02:00
55d534cd6d extract function afl_fsrv_setup_preload 2025-05-23 10:39:03 +08:00
cee764689c fix save_if_interesting
The value of `classified`, `bits_new`, and `cksum`, were not always
correctly maintained.
 1. In the past, `afl->queue_top->exec_cksum` was always assigned when
    `add_to_queue`, however it became conditional since cd57641705.
    This doesn't change correctness because calibrate_case() will
    calculate the checksum. However, this mean one calibration run is
    wasted.

 2. Sometimes `classified` is set incorrectly.
    For example, this code snippet
    ```
    new_bits = has_new_bits_unclassified(afl, afl->virgin_bits);
    classified = 1;
    ```
    should be changed to
    ```
    new_bits = has_new_bits_unclassified(afl, afl->virgin_bits);
    if (new_bits) classified = 1;
    ```

This commit fixed above issues and use macros to make the code easier to
understand. This should prevent to forget to set classified in the
future (like the bug fixed by 30c93d1321).

The macros also defers the calculations to where the values are really
needed. This could save cpu if the code returns earlier. For example,
if a case is timeout first and not timeout the second time, the current
code does classify_counts, which is not always needed.
2025-05-22 23:14:40 +08:00
c3d5f3f471 skip entried synced from us if we have not restarted 2025-05-20 17:07:30 +02:00
c699aa252d reduce overhead 2025-05-19 18:53:22 +08:00
3ee3b5c384 code format 2025-05-17 00:05:31 +02:00
6dcd0aa089 Add env variable SHM_FUZZ_MAP_SIZE (#2430)
* Add env variable SHM_FUZZ_PAGE_SIZE to tell the forkserver about the max shm input size

* fix

* PAGE_SIZE->MAP_SIZE

* fix more nits

* More cleanup
2025-05-16 12:14:58 +02:00
9e4449bad2 code format 2025-05-13 10:51:56 +02:00
6d4a56e481 Merge pull request #2421 from wtdcode/rename-afl-san-no-inst
Rename `AFL_SAN_NO_INST` to `AFL_FSRV_ONLY`
2025-05-13 10:51:08 +02:00
221439fc7a fix foreign sync naming 2025-05-13 10:42:26 +02:00
mio
fca39a6ec3 implement AFL_GCC_ONLY_FSRV 2025-05-13 16:15:11 +08:00
mio
9476204da0 rename to AFL_LLVM_ONLY_FSRV 2025-05-13 15:45:33 +08:00
mio
f3995d5225 rename AFL_SAN_NO_INST to AFL_FSRV_ONLY 2025-05-12 14:43:08 +08:00
673463ff1c Merge pull request #2412 from alexandredoyen29/environment_forkserver
Environment variable to discriminate the target and the forkserver
2025-05-05 14:30:40 +02:00
f580fefc5f Doc 2025-05-05 11:12:51 +02:00
320d4b7ef8 Requested changes 2025-05-05 11:03:26 +02:00
062f883160 add splice_optout_py prototype 2025-05-05 16:16:42 +08:00
6876ab7901 remove dead prototype 2025-05-05 08:46:49 +08:00
701299eefd remove dead code; we no longer use murmurhash 2025-05-05 08:44:26 +08:00
5f7009d6e9 code format 2025-04-28 14:23:17 +02:00
b083016304 Define WORD_SIZE_64 for more 64-bit arches
This enables 64-bit detection for the following additional systems:

- [PowerPC64 (little endian)](https://en.wikipedia.org/wiki/Ppc64)
- [S390x](https://en.wikipedia.org/wiki/S390x)
- [LoongArch64](https://en.wikipedia.org/wiki/LoongArch64)
2025-04-28 07:58:09 +02:00
e30a17be91 v4.33a init 2025-04-26 15:57:30 +02:00
06219b4d56 v4.32c 2025-04-26 15:35:47 +02:00
be8393f201 fix in_define in .custom-format.py
avoid the extra \ before #define line
2025-04-12 15:56:36 +00:00
1d2de1cb6d remove dead code in comment 2025-04-12 11:15:25 +00:00
8461f860eb code format 2025-04-10 16:28:03 +02:00
7395223512 Merge pull request #2368 from w1redch4d/qbdi_fix
fixed qbdi mode to work out of the box
2025-04-10 16:26:48 +02:00
b9c1536283 added safe_length option for portability and clarity 2025-04-10 19:44:54 +05:30
3c8016e071 fixed qbdi mode to work out of the box 2025-04-10 19:21:14 +05:30
55f758a168 Merge pull request #2366 from 5angjun/dev
fix: correct rescoring logic with minimal executions
2025-04-10 14:01:49 +02:00
6cbe58ff55 code format 2025-04-10 09:30:18 +02:00
161905c2fc fix: correct rescoring logic with minimal executions
Previous scoring logic did not correctly rescore all queue entries.

This patch ensures rescoring works under the updated scheduling logic,
while minimizing executions per feedback from PR #2363.

Based on feedback from: https://github.com/AFLplusplus/AFLplusplus/pull/2363
2025-04-09 23:37:16 +09:00
mio
6b71ca7809 Also remove declaration 2025-04-09 21:34:19 +08:00
mio
6223ddf6d2 Changes not saved =( 2025-04-09 21:34:18 +08:00
mio
920c7fe71a Fix sand due to default schedule change 2025-04-09 21:34:18 +08:00
4ff2673895 fix update_bitmap_score when no current trace is present 2025-04-09 14:21:42 +02:00
891b7f48f0 nits 2025-04-09 10:48:34 +02:00
55c9c4ff19 deprecate some queue/.state files 2025-04-08 11:32:08 +02:00
7c349b6cde increase fast resume version 2025-04-07 10:13:13 +02:00
mio
58e4070573 Update comments 2025-04-06 12:18:49 +08:00
mio
2ecf28440f Fix comments in for SAND 2025-04-06 12:16:34 +08:00
ec07f531f8 reduce skipdet_e memory usage
By using bitmaps, the memory requirement for
`q->skipdet_e->skip_eff_map` and `done_inf_map`, which previously scaled
with the corpus size, is reduced to one-eighth of its original size.
2025-04-05 01:49:27 +00:00
5842ba87e5 Define WORD_SIZE_64 for riscv64 2025-04-03 04:17:37 -04:00
4cabb81996 Better handling of exit codes used by sanitzers 2025-03-24 16:30:05 +01:00
73a36ffda3 Add fflush(stdout); before abort call
Fixes #2318
2025-03-03 05:24:36 -05:00
47954cd04c try macos fix 2025-02-12 09:16:01 +01:00
e6f15f02e1 fix 32 bit compile 2025-02-11 12:02:40 +01:00
125027f5bf v4.32a 2025-02-10 14:40:12 +01:00