From 5bba2b362f7ecde1a1a034c0bb0cc882577d8bce Mon Sep 17 00:00:00 2001 From: Andrew Cooper Date: Mon, 26 Jun 2017 12:58:25 +0100 Subject: [PATCH] x86/mm: Fix infinite loop in get_spage_pages() c/s 2b8eb37 switched int i to being unsigned, but the undo logic on failure relied in i being signed. As i being unsigned in still preforable, adjust the undo logic to work with an unsigned i. Coverity-ID: 1413017 Signed-off-by: Andrew Cooper Reviewed-by: Konrad Rzeszutek Will Reviewed-by: Wei Liu --- xen/arch/x86/mm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index b20f37f253..19f672d880 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -2687,7 +2687,7 @@ static int get_spage_pages(struct page_info *page, struct domain *d) { if ( !get_page_and_type(page, d, PGT_writable_page) ) { - while ( --i >= 0 ) + while ( i-- > 0 ) put_page_and_type(--page); return 0; } -- 2.39.5