diff options
author | Juan Quintela <quintela@redhat.com> | 2013-10-08 13:29:11 +0200 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2014-01-13 14:04:54 +0100 |
commit | 7a5b558c9d061814f34d9b95d70d17ef75037937 (patch) | |
tree | 11e33bf92614f45341f98f78a7863ad4bfd56e2b /include/exec | |
parent | 5adca7ace9b80bf594e4c52c0d5b23573cba3639 (diff) | |
download | hqemu-7a5b558c9d061814f34d9b95d70d17ef75037937.zip hqemu-7a5b558c9d061814f34d9b95d70d17ef75037937.tar.gz |
memory: make sure that client is always inside range
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
Diffstat (limited to 'include/exec')
-rw-r--r-- | include/exec/memory-internal.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/exec/memory-internal.h b/include/exec/memory-internal.h index b58010f..d09d6d8 100644 --- a/include/exec/memory-internal.h +++ b/include/exec/memory-internal.h @@ -43,6 +43,7 @@ void qemu_ram_free_from_ptr(ram_addr_t addr); static inline bool cpu_physical_memory_get_dirty_flag(ram_addr_t addr, unsigned client) { + assert(client < DIRTY_MEMORY_NUM); return ram_list.phys_dirty[addr >> TARGET_PAGE_BITS] & (1 << client); } @@ -74,6 +75,7 @@ static inline int cpu_physical_memory_get_dirty(ram_addr_t start, static inline void cpu_physical_memory_set_dirty_flag(ram_addr_t addr, unsigned client) { + assert(client < DIRTY_MEMORY_NUM); ram_list.phys_dirty[addr >> TARGET_PAGE_BITS] |= (1 << client); } @@ -89,6 +91,8 @@ static inline int cpu_physical_memory_clear_dirty_flag(ram_addr_t addr, { int mask = ~(1 << client); + assert(client < DIRTY_MEMORY_NUM); + return ram_list.phys_dirty[addr >> TARGET_PAGE_BITS] &= mask; } |