Check to see if we've reached the end of the map before attempting to

skip past an empty region, otherwise we end up generating an infinitely
long e820 map.  (Yes, there *are* real systems that provide e820 maps
with a zero-length region at the end...)
pull/1/head
Michael Brown 2006-08-31 13:25:45 +00:00
parent c399e88aa3
commit 78dd963c1f
1 changed files with 5 additions and 0 deletions

View File

@ -361,7 +361,12 @@ int15_e820:
pushl %edx
call split_e820
pushfw
/* Skip empty region checking if we've reached the end of the
* map or hit an error, to avoid a potential endless loop.
*/
jc 1f
testl %ebx, %ebx
jz 1f
/* Check for an empty region */
pushl %eax
movl %es:8(%di), %eax