]> Git Repo - qemu.git/commitdiff
exec.c: check memory backend file size with 'size' option
authorHaozhong Zhang <[email protected]>
Wed, 2 Nov 2016 01:05:51 +0000 (09:05 +0800)
committerPaolo Bonzini <[email protected]>
Wed, 2 Nov 2016 08:28:51 +0000 (09:28 +0100)
If the memory backend file is not large enough to hold the required 'size',
Qemu will report error and exit.

Signed-off-by: Haozhong Zhang <[email protected]>
Message-Id: <20161027042300[email protected]>
Reviewed-by: Eduardo Habkost <[email protected]>
Message-Id: <20161102010551[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
exec.c

diff --git a/exec.c b/exec.c
index f471e7377a6cc5e0ac044b41f307ac3067352af0..f3c2770d54e7e43f31f4b70773c88444b96a4b45 100644 (file)
--- a/exec.c
+++ b/exec.c
@@ -1321,6 +1321,13 @@ static void *file_ram_alloc(RAMBlock *block,
         goto error;
     }
 
+    if (file_size > 0 && file_size < memory) {
+        error_setg(errp, "backing store %s size 0x%" PRIx64
+                   " does not match 'size' option 0x" RAM_ADDR_FMT,
+                   path, file_size, memory);
+        goto error;
+    }
+
     memory = ROUND_UP(memory, block->page_size);
 
     /*
This page took 0.025212 seconds and 4 git commands to generate.