mirror of https://gitee.com/openkylin/qemu.git
page_check_range: fix wrap around test (Lauro Ramos Venancio).
Move up the warp around test because line 'end = TARGET_PAGE_ALIGN(start+len);' can interfere with it. git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5563 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
parent
d732dcb442
commit
55f280c90e
7
exec.c
7
exec.c
|
@ -2081,12 +2081,13 @@ int page_check_range(target_ulong start, target_ulong len, int flags)
|
|||
target_ulong end;
|
||||
target_ulong addr;
|
||||
|
||||
if (start + len < start)
|
||||
/* we've wrapped around */
|
||||
return -1;
|
||||
|
||||
end = TARGET_PAGE_ALIGN(start+len); /* must do before we loose bits in the next step */
|
||||
start = start & TARGET_PAGE_MASK;
|
||||
|
||||
if( end < start )
|
||||
/* we've wrapped around */
|
||||
return -1;
|
||||
for(addr = start; addr < end; addr += TARGET_PAGE_SIZE) {
|
||||
p = page_find(addr >> TARGET_PAGE_BITS);
|
||||
if( !p )
|
||||
|
|
Loading…
Reference in New Issue