static bool post_fuzz_cb(generic_func_t target_pc, void *fuzzcxt, void *user_data) { ptr_uint_t arg_value; if (drfuzz_get_arg(target_pc, 0, false/*cur*/, (void **)&arg_value) != DRMF_SUCCESS) DR_ASSERT_MSG(false, "drfuzz failed to get arg"); if (arg_value == 5) return false; /* stop */ return true; /* repeat */ }
static void pre_fuzz_cb(generic_func_t target_pc, void *fuzzcxt, void **user_data) { ptr_uint_t arg_value; if (drfuzz_get_arg(target_pc, 0, false/*cur*/, (void **)&arg_value) != DRMF_SUCCESS) DR_ASSERT_MSG(false, "drfuzz failed to get arg"); arg_value = (arg_value + 1); if (drfuzz_set_arg(fuzzcxt, 0, (void *)arg_value) != DRMF_SUCCESS) DR_ASSERT_MSG(false, "drfuzz failed to set arg"); }
static bool post_fuzz_cb(void *fuzzcxt, generic_func_t target_pc) { ptr_uint_t arg_value; if (drfuzz_get_arg(fuzzcxt, target_pc, 0, false/*cur*/, (void **) &arg_value) != DRMF_SUCCESS) EXPECT(false, "drfuzz failed to get arg"); if (arg_value == 5) return false; /* stop */ return true; /* repeat */ }
static void pre_fuzz_cb(void *fuzzcxt, generic_func_t target_pc, dr_mcontext_t *mc) { ptr_uint_t arg_value; if (drfuzz_get_arg(fuzzcxt, target_pc, 0, false/*cur*/, (void **) &arg_value) != DRMF_SUCCESS) EXPECT(false, "drfuzz failed to get arg"); arg_value = (arg_value + 1); if (drfuzz_set_arg(fuzzcxt, 0, (void *)arg_value) != DRMF_SUCCESS) EXPECT(false, "drfuzz failed to set arg"); }