diff options
author | Andrea Fioraldi <andreafioraldi@gmail.com> | 2019-10-23 19:48:18 +0200 |
---|---|---|
committer | Andrea Fioraldi <andreafioraldi@gmail.com> | 2019-10-23 19:48:18 +0200 |
commit | 297e9e3cf59540f16b8260a01ef7c6cd01d9e554 (patch) | |
tree | 7cea3603195656accf6c3f6c181c3a4dbc49fdb5 /qemu_mode/patches/afl-qemu-common.h | |
parent | ebea44029e019960cbf075dacd7b1a1f79d1bae2 (diff) | |
download | afl++-297e9e3cf59540f16b8260a01ef7c6cd01d9e554.tar.gz |
move is_valid_addr in afl-qemu-common.h
Diffstat (limited to 'qemu_mode/patches/afl-qemu-common.h')
-rw-r--r-- | qemu_mode/patches/afl-qemu-common.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/qemu_mode/patches/afl-qemu-common.h b/qemu_mode/patches/afl-qemu-common.h index 1da3359d..409a7eab 100644 --- a/qemu_mode/patches/afl-qemu-common.h +++ b/qemu_mode/patches/afl-qemu-common.h @@ -81,3 +81,21 @@ void tcg_gen_afl_compcov_log_call(void *func, target_ulong cur_loc, void tcg_gen_afl_maybe_log_call(target_ulong cur_loc); + +/* Check if an address is valid in the current mapping */ + +static inline int is_valid_addr(target_ulong addr) { + + int l, flags; + target_ulong page; + void * p; + + page = addr & TARGET_PAGE_MASK; + l = (page + TARGET_PAGE_SIZE) - addr; + + flags = page_get_flags(page); + if (!(flags & PAGE_VALID) || !(flags & PAGE_READ)) return 0; + + return 1; + +} |