From: balrog Date: Tue, 28 Oct 2008 10:24:11 +0000 (+0000) Subject: page_check_range: fix wrap around test (Lauro Ramos Venancio). X-Git-Tag: TizenStudio_2.0_p2.3~10663 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c5e705acea12cab32c5e98852b531cb7ce908c65;p=sdk%2Femulator%2Fqemu.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 --- diff --git a/exec.c b/exec.c index f1fcec8..697a19e 100644 --- a/exec.c +++ b/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 )