From mboxrd@z Thu Jan 1 00:00:00 1970 From: walimis Subject: Re: [PATCH 2/3] kvm tools: check negative value of num_pages Date: Thu, 11 Aug 2011 13:40:37 +0800 Message-ID: <20110811054037.GB13190@walimis-desktop> References: <1313039267-25951-1-git-send-email-walimisdev@gmail.com> <1313039267-25951-2-git-send-email-walimisdev@gmail.com> <1313041021.10059.9.camel@lappy> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Pekka Enberg , Ingo Molnar , Asias He , kvm@vger.kernel.org To: Sasha Levin Return-path: Received: from mail-wy0-f174.google.com ([74.125.82.174]:60248 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751131Ab1HKF4q (ORCPT ); Thu, 11 Aug 2011 01:56:46 -0400 Received: by wyg24 with SMTP id 24so1180713wyg.19 for ; Wed, 10 Aug 2011 22:56:45 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1313041021.10059.9.camel@lappy> Sender: kvm-owner@vger.kernel.org List-ID: On Thu, Aug 11, 2011 at 08:37:01AM +0300, Sasha Levin wrote: >On Thu, 2011-08-11 at 13:07 +0800, Liming Wang wrote: >> If num_pages is negative, balloon will make kernel crash with >> "out of memory". So we check this value to avoid it to be negative. >> >> Signed-off-by: Liming Wang >> --- >> tools/kvm/virtio/balloon.c | 7 ++++++- >> 1 files changed, 6 insertions(+), 1 deletions(-) >> >> diff --git a/tools/kvm/virtio/balloon.c b/tools/kvm/virtio/balloon.c >> index 854d04b..0223ee4 100644 >> --- a/tools/kvm/virtio/balloon.c >> +++ b/tools/kvm/virtio/balloon.c >> @@ -222,8 +222,13 @@ static void handle_sigmem(int sig) >> { >> if (sig == SIGKVMADDMEM) >> bdev.config.num_pages += 256; >> - else >> + else { >> bdev.config.num_pages -= 256; >> + if ((s32)bdev.config.num_pages < 0){ > >imo it's worth doing this check before the decrement instead of casting >to signed here. You mean that check whether num_pages less than 256 or equal to 0? > >you also need to wrap the 'if ()' with parenthesis if you add them to >the 'else' case. Sorry, I'm not clear what that does mean? walimis > >> + bdev.config.num_pages = 0; >> + return; >> + } >> + } >> >> /* Notify that the configuration space has changed */ >> bdev.isr = VIRTIO_PCI_ISR_CONFIG; > >-- > >Sasha. >