fix stdin trimming

This commit is contained in:
vanhauser-thc
2021-04-30 23:41:06 +02:00
parent f4cc718fdc
commit 86452cc959
4 changed files with 21 additions and 15 deletions

View File

@ -195,10 +195,7 @@ static u32 __afl_next_testcase(u8 *buf, u32 max_len) {
/* report that we are starting the target */
if (write(FORKSRV_FD + 1, &res, 4) != 4) return 0;
if (status < 1)
return 0;
else
return status;
return status;
}
@ -216,7 +213,7 @@ int main(int argc, char *argv[]) {
/* This is were the testcase data is written into */
u8 buf[1024]; // this is the maximum size for a test case! set it!
u32 len;
s32 len;
/* here you specify the map size you need that you are reporting to
afl-fuzz. Any value is fine as long as it can be divided by 32. */
@ -228,10 +225,20 @@ int main(int argc, char *argv[]) {
while ((len = __afl_next_testcase(buf, sizeof(buf))) > 0) {
/* here you have to create the magic that feeds the buf/len to the
target and write the coverage to __afl_area_ptr */
if (len > 4) { // the minimum data size you need for the target
// ... the magic ...
/* here you have to create the magic that feeds the buf/len to the
target and write the coverage to __afl_area_ptr */
// ... the magic ...
// remove this, this is just to make afl-fuzz not complain when run
if (buf[0] == 0xff)
__afl_area_ptr[1] = 1;
else
__afl_area_ptr[2] = 2;
}
/* report the test case is done and wait for the next */
__afl_end_testcase();