]> xenbits.xensource.com Git - qemu-upstream-4.5-testing.git/commitdiff
memory: make sure that client is always inside range
authorJuan Quintela <quintela@redhat.com>
Tue, 8 Oct 2013 11:29:11 +0000 (13:29 +0200)
committerJuan Quintela <quintela@redhat.com>
Mon, 13 Jan 2014 13:04:54 +0000 (14:04 +0100)
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Orit Wasserman <owasserm@redhat.com>
include/exec/memory-internal.h

index b58010f1d02115781a48ed88d519aadc7e96342b..d09d6d8355bcf5b8a1533b786390d351057fb5a5 100644 (file)
@@ -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;
 }