From 7c4aebc9d8d593b05936f968b5fb6be148da38a1 Mon Sep 17 00:00:00 2001 From: Matthew Knight Date: Fri, 6 Mar 2026 01:21:10 -0800 Subject: [PATCH] Minimize corpus --- actions/cairn-zig-fuzz-afl/action.yml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/actions/cairn-zig-fuzz-afl/action.yml b/actions/cairn-zig-fuzz-afl/action.yml index e1e9b32..a0d98dd 100644 --- a/actions/cairn-zig-fuzz-afl/action.yml +++ b/actions/cairn-zig-fuzz-afl/action.yml @@ -166,6 +166,24 @@ runs: fi echo "Fuzz binary: ${FUZZ_BIN}" + # ── Minimize corpus ── + SEED_COUNT=$(find "${SEEDS}" -maxdepth 1 -type f | wc -l) + if [ "${SEED_COUNT}" -gt 1 ]; then + echo "Minimizing corpus (${SEED_COUNT} inputs)..." + MINIMIZED="afl-cmin-${TARGET_NUM}" + rm -rf "${MINIMIZED}" + mkdir -p "${MINIMIZED}" + if afl-cmin -i "${SEEDS}" -o "${MINIMIZED}" -- "${FUZZ_BIN}" >/dev/null 2>&1; then + MINIMIZED_COUNT=$(find "${MINIMIZED}" -maxdepth 1 -type f | wc -l) + echo "Corpus minimized: ${SEED_COUNT} -> ${MINIMIZED_COUNT} inputs" + rm -rf "${SEEDS}" + mv "${MINIMIZED}" "${SEEDS}" + else + echo "afl-cmin failed, using unminimized corpus" + rm -rf "${MINIMIZED}" + fi + fi + # ── Run AFL++ ── FINDINGS="findings-${TARGET_NUM}" rm -rf "${FINDINGS}"