lto whitelist in test.sh

This commit is contained in:
van Hauser
2020-06-23 21:23:10 +02:00
parent 2b450aeb20
commit 49a769ac06
9 changed files with 33 additions and 26 deletions

View File

@ -245,6 +245,7 @@ static void __tokencap_load_mappings(void) {
if (++__tokencap_ro_cnt == MAX_MAPPINGS) break; if (++__tokencap_ro_cnt == MAX_MAPPINGS) break;
} }
#endif #endif
} }

View File

@ -103,6 +103,7 @@ struct InsTrim : public ModulePass {
bool runOnModule(Module &M) override { bool runOnModule(Module &M) override {
char be_quiet = 0; char be_quiet = 0;
setvbuf(stdout, NULL, _IONBF, 0);
if ((isatty(2) && !getenv("AFL_QUIET")) || getenv("AFL_DEBUG") != NULL) { if ((isatty(2) && !getenv("AFL_QUIET")) || getenv("AFL_DEBUG") != NULL) {

View File

@ -113,6 +113,8 @@ struct InsTrimLTO : public ModulePass {
char be_quiet = 0; char be_quiet = 0;
char *ptr; char *ptr;
setvbuf(stdout, NULL, _IONBF, 0);
if ((isatty(2) && !getenv("AFL_QUIET")) || getenv("AFL_DEBUG") != NULL) { if ((isatty(2) && !getenv("AFL_QUIET")) || getenv("AFL_DEBUG") != NULL) {
SAYF(cCYA "InsTrimLTO" VERSION cRST SAYF(cCYA "InsTrimLTO" VERSION cRST

View File

@ -109,6 +109,7 @@ bool AFLLTOPass::runOnModule(Module &M) {
IntegerType *Int64Ty = IntegerType::getInt64Ty(C); IntegerType *Int64Ty = IntegerType::getInt64Ty(C);
/* Show a banner */ /* Show a banner */
setvbuf(stdout, NULL, _IONBF, 0);
if ((isatty(2) && !getenv("AFL_QUIET")) || debug) { if ((isatty(2) && !getenv("AFL_QUIET")) || debug) {
@ -162,7 +163,7 @@ bool AFLLTOPass::runOnModule(Module &M) {
} }
if (debug) { fprintf(stderr, "map address is %lu\n", map_addr); } if (debug) { fprintf(stderr, "map address is 0x%lx\n", map_addr); }
/* Get/set the globals for the SHM region. */ /* Get/set the globals for the SHM region. */

View File

@ -111,6 +111,7 @@ bool AFLwhitelist::runOnModule(Module &M) {
/* Show a banner */ /* Show a banner */
char be_quiet = 0; char be_quiet = 0;
setvbuf(stdout, NULL, _IONBF, 0);
if ((isatty(2) && !getenv("AFL_QUIET")) || getenv("AFL_DEBUG") != NULL) { if ((isatty(2) && !getenv("AFL_QUIET")) || getenv("AFL_DEBUG") != NULL) {

View File

@ -140,6 +140,7 @@ bool AFLCoverage::runOnModule(Module &M) {
/* Show a banner */ /* Show a banner */
char be_quiet = 0; char be_quiet = 0;
setvbuf(stdout, NULL, _IONBF, 0);
if (getenv("AFL_DEBUG")) debug = 1; if (getenv("AFL_DEBUG")) debug = 1;

View File

@ -36,7 +36,8 @@ static inline uint64_t rotl(const uint64_t x, int k) {
void rand_set_seed(afl_state_t *afl, s64 init_seed) { void rand_set_seed(afl_state_t *afl, s64 init_seed) {
afl->init_seed = init_seed; afl->init_seed = init_seed;
afl->rand_seed[0] = hash64((void *)&afl->init_seed, sizeof(afl->init_seed), HASH_CONST); afl->rand_seed[0] =
hash64((void *)&afl->init_seed, sizeof(afl->init_seed), HASH_CONST);
afl->rand_seed[1] = afl->rand_seed[0] ^ 0x1234567890abcdef; afl->rand_seed[1] = afl->rand_seed[0] ^ 0x1234567890abcdef;
afl->rand_seed[2] = afl->rand_seed[0] & 0x0123456789abcdef; afl->rand_seed[2] = afl->rand_seed[0] & 0x0123456789abcdef;
afl->rand_seed[3] = afl->rand_seed[0] | 0x01abcde43f567908; afl->rand_seed[3] = afl->rand_seed[0] | 0x01abcde43f567908;

View File

@ -459,24 +459,23 @@ test -e ../afl-clang-lto -a -e ../afl-llvm-lto-instrumentation.so && {
} }
rm -f test-instr.plain rm -f test-instr.plain
# Disabled whitelist until I have a different solution -mh echo foobar.c > whitelist.txt
# echo foobar.c > whitelist.txt AFL_DEBUG=1 AFL_LLVM_WHITELIST=whitelist.txt ../afl-clang-lto -o test-compcov test-compcov.c > test.out 2>&1
# AFL_LLVM_WHITELIST=whitelist.txt ../afl-clang-lto -o test-compcov test-compcov.c > test.out 2>&1 test -e test-compcov && {
# test -e test-compcov && { grep -q "No instrumentation targets found" test.out && {
# grep -q "No instrumentation targets found" test.out && { $ECHO "$GREEN[+] llvm_mode LTO whitelist feature works correctly"
# $ECHO "$GREEN[+] llvm_mode LTO whitelist feature works correctly" } || {
# } || { $ECHO "$RED[!] llvm_mode LTO whitelist feature failed"
# $ECHO "$RED[!] llvm_mode LTO whitelist feature failed" CODE=1
# CODE=1 }
# } } || {
# } || { $ECHO "$RED[!] llvm_mode LTO whitelist feature compilation failed"
# $ECHO "$RED[!] llvm_mode LTO whitelist feature compilation failed" CODE=1
# CODE=1 }
# } rm -f test-compcov test.out whitelist.txt
# rm -f test-compcov test.out whitelist.txt
../afl-clang-lto -o test-persistent ../examples/persistent_demo/persistent_demo.c > /dev/null 2>&1 ../afl-clang-lto -o test-persistent ../examples/persistent_demo/persistent_demo.c > /dev/null 2>&1
test -e test-persistent && { test -e test-persistent && {
echo foo | ../afl-showmap -o /dev/null -q -r ./test-persistent && { echo foo | ../afl-showmap -m none -o /dev/null -q -r ./test-persistent && {
$ECHO "$GREEN[+] llvm_mode LTO persistent mode feature works correctly" $ECHO "$GREEN[+] llvm_mode LTO persistent mode feature works correctly"
} || { } || {
$ECHO "$RED[!] llvm_mode LTO persistent mode feature failed to work" $ECHO "$RED[!] llvm_mode LTO persistent mode feature failed to work"