From mboxrd@z Thu Jan 1 00:00:00 1970 From: Xiao Guangrong Subject: [PATCH] e820: fix e820_change_range_type() Date: Tue, 10 Nov 2009 03:19:44 +0800 Message-ID: <4AF86B50.7050402@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "keir.fraser" Cc: Xiao Guangrong , xen-devel List-Id: xen-devel@lists.xenproject.org In below case, e820_change_range_type() will return succee: [s, e] is in the middle of [rs, re] and e820->nr_map+1 >= ARRAY_SIZE(e820->map) actually, it's failed, so this patch fix it Signed-off-by: Xiao Guangrong diff -r f23b859e237a -r 93bc06dd1161 xen/arch/x86/e820.c --- a/xen/arch/x86/e820.c Tue Nov 10 02:34:16 2009 +0800 +++ b/xen/arch/x86/e820.c Tue Nov 10 02:41:59 2009 +0800 @@ -574,7 +574,7 @@ e820->map[i+1].type = new_type; } } - else if ( e820->nr_map+1 < ARRAY_SIZE(e820->map) ) + else { if ( (e820->nr_map + 2) > ARRAY_SIZE(e820->map) ) goto overflow;