David Gibson d2963631dd Fix subtle integer overflow bug in memory API
It is quite common to have a MemoryRegion with size of INT64_MAX.
When processing alias regions in render_memory_region() it's quite
easy to find a case where it will construct a temporary AddrRange with
a non-zero start, and size still of INT64_MAX.  When means attempting
to compute the end of such a range as start + size will result in
signed integer overflow.

This integer overflow means that addrrange_intersects() can
incorrectly report regions as not intersecting when they do.  For
example consider the case of address ranges {0x10000000000,
0x7fffffffffffffff} and {0x10010000000, 0x10000000} where the second
is in fact included completely in the first.

This patch rearranges addrrange_intersects() to avoid the integer
overflow, correcting this behaviour.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Avi Kivity <avi@redhat.com>
2011-09-14 11:21:58 +03:00
2011-09-03 17:47:14 +00:00
2011-08-23 22:24:40 +02:00
2011-09-10 16:57:36 +00:00
2011-09-10 16:57:36 +00:00
2011-08-27 15:42:35 +00:00
2011-09-06 11:23:51 +02:00
2011-09-10 16:57:38 +00:00
2011-09-02 10:34:55 -05:00
2011-08-25 09:21:48 +01:00
2011-08-28 07:17:08 +00:00
2011-09-10 16:57:36 +00:00
2011-09-10 18:12:35 +00:00
2011-08-27 15:42:35 +00:00
2011-08-27 15:42:35 +00:00
2011-09-02 10:34:55 -05:00
2011-09-06 11:23:51 +02:00
2011-09-10 16:57:40 +00:00
2011-09-10 14:46:50 +00:00
2011-09-10 14:46:12 +00:00
2011-08-27 15:42:35 +00:00
2011-09-09 09:56:12 +01:00
2011-08-27 15:42:35 +00:00
2011-08-27 15:42:35 +00:00
2011-08-22 10:17:44 -05:00
2011-08-26 18:18:38 +02:00
2011-08-27 15:42:35 +00:00
2011-09-10 16:50:46 +00:00
2011-09-07 09:58:27 +02:00
2011-08-27 15:42:35 +00:00
2011-09-10 16:57:39 +00:00

Read the documentation in qemu-doc.html.

Fabrice Bellard.
Description
Original Xbox Emulator for Windows, macOS, and Linux (Active Development)
Readme 527 MiB
Languages
C 82.5%
C++ 7%
Python 3.3%
Dylan 2.8%
Shell 1.5%
Other 2.6%