diff mbox

[v2,2/3] exec.c: check memory backend file size with 'size' option

Message ID 20161027042300.5929-3-haozhong.zhang@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Haozhong Zhang Oct. 27, 2016, 4:22 a.m. UTC
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>
---
 exec.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Eduardo Habkost Oct. 27, 2016, 2:32 p.m. UTC | #1
On Thu, Oct 27, 2016 at 12:22:59PM +0800, Haozhong Zhang wrote:
> 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>

Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>

> ---
>  exec.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/exec.c b/exec.c
> index a2b371a..264a25f 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -1316,6 +1316,13 @@ static void *file_ram_alloc(RAMBlock *block,
>          goto error;
>      }
>  
> +    if (file_size > 0 && file_size < memory) {
> +        error_setg(errp, "backing store %s size %"PRId64
> +                   " does not match 'size' option %"PRIu64,
> +                   path, file_size, memory);
> +        goto error;
> +    }
> +
>      memory = ROUND_UP(memory, block->page_size);
>  
>      /*
> -- 
> 2.10.1
>
Eduardo Habkost Oct. 31, 2016, 5:23 p.m. UTC | #2
On Thu, Oct 27, 2016 at 12:22:59PM +0800, Haozhong Zhang wrote:
> 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>

Applied to machine-next. Thanks!

> ---
>  exec.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/exec.c b/exec.c
> index a2b371a..264a25f 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -1316,6 +1316,13 @@ static void *file_ram_alloc(RAMBlock *block,
>          goto error;
>      }
>  
> +    if (file_size > 0 && file_size < memory) {
> +        error_setg(errp, "backing store %s size %"PRId64
> +                   " does not match 'size' option %"PRIu64,
> +                   path, file_size, memory);
> +        goto error;
> +    }
> +
>      memory = ROUND_UP(memory, block->page_size);
>  
>      /*
> -- 
> 2.10.1
> 
>
Paolo Bonzini Oct. 31, 2016, 5:56 p.m. UTC | #3
On 31/10/2016 18:23, Eduardo Habkost wrote:
> On Thu, Oct 27, 2016 at 12:22:59PM +0800, Haozhong Zhang wrote:
>> 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>
> 
> Applied to machine-next. Thanks!

Also part of my pull request. :)

Paolo

>> ---
>>  exec.c | 7 +++++++
>>  1 file changed, 7 insertions(+)
>>
>> diff --git a/exec.c b/exec.c
>> index a2b371a..264a25f 100644
>> --- a/exec.c
>> +++ b/exec.c
>> @@ -1316,6 +1316,13 @@ static void *file_ram_alloc(RAMBlock *block,
>>          goto error;
>>      }
>>  
>> +    if (file_size > 0 && file_size < memory) {
>> +        error_setg(errp, "backing store %s size %"PRId64
>> +                   " does not match 'size' option %"PRIu64,
>> +                   path, file_size, memory);
>> +        goto error;
>> +    }
>> +
>>      memory = ROUND_UP(memory, block->page_size);
>>  
>>      /*
>> -- 
>> 2.10.1
>>
>>
>
diff mbox

Patch

diff --git a/exec.c b/exec.c
index a2b371a..264a25f 100644
--- a/exec.c
+++ b/exec.c
@@ -1316,6 +1316,13 @@  static void *file_ram_alloc(RAMBlock *block,
         goto error;
     }
 
+    if (file_size > 0 && file_size < memory) {
+        error_setg(errp, "backing store %s size %"PRId64
+                   " does not match 'size' option %"PRIu64,
+                   path, file_size, memory);
+        goto error;
+    }
+
     memory = ROUND_UP(memory, block->page_size);
 
     /*