[PATCH 2/3] kvm tools: check negative value of num_pages

Liming Wang
2011-08-11T07:38:09Z

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 <walimisdev@gmail.com>
---
tools/kvm/virtio/balloon.c | 8 ++++++--
1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/tools/kvm/virtio/balloon.c b/tools/kvm/virtio/balloon.c
index 854d04b..941023e 100644
--- a/tools/kvm/virtio/balloon.c
+++ b/tools/kvm/virtio/balloon.c
@@ -220,10 +220,14 @@ static struct ioport_operations virtio_bln_io_ops = {

static void handle_sigmem(int sig)
{
- if (sig == SIGKVMADDMEM)
+ if (sig == SIGKVMADDMEM) {
bdev.config.num_pages += 256;
- else
+ } else {
+ if (bdev.config.num_pages < 256){
+ return;
+ }
bdev.config.num_pages -= 256;
+ }

/* Notify that the configuration space has changed */
bdev.isr = VIRTIO_PCI_ISR_CONFIG;
--
1.7.0.4