fix afl-showmap and gcc plugin test

This commit is contained in:
van Hauser
2021-01-21 19:58:25 +01:00
parent 60764ebdf1
commit 30148bc1a9
2 changed files with 9 additions and 6 deletions

View File

@ -85,6 +85,7 @@ static u8 quiet_mode, /* Hide non-essential messages? */
keep_cores, /* Allow coredumps? */ keep_cores, /* Allow coredumps? */
remove_shm = 1, /* remove shmem? */ remove_shm = 1, /* remove shmem? */
collect_coverage, /* collect coverage */ collect_coverage, /* collect coverage */
have_coverage, /* have coverage? */
no_classify; /* do not classify counts */ no_classify; /* do not classify counts */
static volatile u8 stop_soon, /* Ctrl-C pressed? */ static volatile u8 stop_soon, /* Ctrl-C pressed? */
@ -316,7 +317,8 @@ static void showmap_run_target_forkserver(afl_forkserver_t *fsrv, u8 *mem,
} }
if (fsrv->trace_bits[0] == 1) { fsrv->trace_bits[0] = 0; } if (fsrv->trace_bits[0] == 1) { fsrv->trace_bits[0] = 0; have_coverage = 1; }
else { have_coverage = 0; }
if (!no_classify) { classify_counts(fsrv); } if (!no_classify) { classify_counts(fsrv); }
@ -491,7 +493,8 @@ static void showmap_run_target(afl_forkserver_t *fsrv, char **argv) {
} }
if (fsrv->trace_bits[0] == 1) { fsrv->trace_bits[0] = 0; } if (fsrv->trace_bits[0] == 1) { fsrv->trace_bits[0] = 0; have_coverage = 1; }
else { have_coverage = 0; }
if (!no_classify) { classify_counts(fsrv); } if (!no_classify) { classify_counts(fsrv); }
@ -1232,7 +1235,7 @@ int main(int argc, char **argv_orig, char **envp) {
if (!quiet_mode || collect_coverage) { if (!quiet_mode || collect_coverage) {
if (!tcnt) { FATAL("No instrumentation detected" cRST); } if (!tcnt && !have_coverage) { FATAL("No instrumentation detected" cRST); }
OKF("Captured %u tuples (highest value %u, total values %llu) in " OKF("Captured %u tuples (highest value %u, total values %llu) in "
"'%s'." cRST, "'%s'." cRST,
tcnt, highest, total, out_file); tcnt, highest, total, out_file);

View File

@ -86,15 +86,15 @@ test -e ../afl-gcc-fast -a -e ../afl-compiler-rt.o && {
# now for the special gcc_plugin things # now for the special gcc_plugin things
echo foobar.c > instrumentlist.txt echo foobar.c > instrumentlist.txt
AFL_GCC_INSTRUMENT_FILE=instrumentlist.txt ../afl-gcc-fast -o test-compcov test-compcov.c > /dev/null 2>&1 AFL_GCC_INSTRUMENT_FILE=instrumentlist.txt ../afl-gcc-fast -o test-compcov test-compcov.c > /dev/null 2>&1
test -e test-compcov && test_compcov_binary_functionality ./test-compcov && { test -x test-compcov && test_compcov_binary_functionality ./test-compcov && {
echo 1 | ../afl-showmap -m ${MEM_LIMIT} -o - -r -- ./test-compcov 2>&1 | grep -q "Captured 1 tuples" && { echo 1 | ../afl-showmap -m ${MEM_LIMIT} -o - -r -- ./test-compcov 2>&1 | grep -q "Captured 0 tuples" && {
$ECHO "$GREEN[+] gcc_plugin instrumentlist feature works correctly" $ECHO "$GREEN[+] gcc_plugin instrumentlist feature works correctly"
} || { } || {
$ECHO "$RED[!] gcc_plugin instrumentlist feature failed" $ECHO "$RED[!] gcc_plugin instrumentlist feature failed"
CODE=1 CODE=1
} }
} || { } || {
$ECHO "$RED[!] gcc_plugin instrumentlist feature compilation failed" $ECHO "$RED[!] gcc_plugin instrumentlist feature compilation failed."
CODE=1 CODE=1
} }
rm -f test-compcov test.out instrumentlist.txt rm -f test-compcov test.out instrumentlist.txt