diff options
author | Haozhong Zhang <haozhong.zhang@intel.com> | 2016-11-02 09:05:51 +0800 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2016-11-02 09:28:51 +0100 |
commit | 1775f111eaf7f49efcec30152db44a184c1e2222 (patch) | |
tree | 8ac5093c8a97e358f40c725f4a11f9043034a238 /exec.c | |
parent | d6af99c9f8d577927a52d00af3fa8e6ec0b2a4e2 (diff) | |
download | qemu-1775f111eaf7f49efcec30152db44a184c1e2222.zip qemu-1775f111eaf7f49efcec30152db44a184c1e2222.tar.gz qemu-1775f111eaf7f49efcec30152db44a184c1e2222.tar.bz2 |
exec.c: check memory backend file size with 'size' option
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 <haozhong.zhang@intel.com>
Message-Id: <20161027042300.5929-3-haozhong.zhang@intel.com>
Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>
Message-Id: <20161102010551.2723-1-haozhong.zhang@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'exec.c')
-rw-r--r-- | exec.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -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); /* |