aboutsummaryrefslogtreecommitdiff
path: root/utils/afl_proxy
diff options
context:
space:
mode:
Diffstat (limited to 'utils/afl_proxy')
-rw-r--r--utils/afl_proxy/afl-proxy.c29
1 files changed, 21 insertions, 8 deletions
diff --git a/utils/afl_proxy/afl-proxy.c b/utils/afl_proxy/afl-proxy.c
index aa7a361a..6006e238 100644
--- a/utils/afl_proxy/afl-proxy.c
+++ b/utils/afl_proxy/afl-proxy.c
@@ -70,6 +70,10 @@ static void __afl_map_shm(void) {
char *id_str = getenv(SHM_ENV_VAR);
char *ptr;
+ /* NOTE TODO BUG FIXME: if you want to supply a variable sized map then
+ uncomment the following: */
+
+ /*
if ((ptr = getenv("AFL_MAP_SIZE")) != NULL) {
u32 val = atoi(ptr);
@@ -77,6 +81,8 @@ static void __afl_map_shm(void) {
}
+ */
+
if (__afl_map_size > MAP_SIZE) {
if (__afl_map_size > FS_OPT_MAX_MAPSIZE) {
@@ -189,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;
}
@@ -210,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. */
@@ -222,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
+
+ /* 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 ...
+ // ... 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();