[Qemu-devel] [PATCH] Check for invalid initrd file

2010-04-11 Thread M. Mohan Kumar
When qemu is invoked with an invalid initrd file, it crashes. Following
patch prints a error message and exits if an invalid initrd is
specified. Includes changes suggested by JV.

Signed-off-by: M. Mohan Kumar 
---
 hw/pc.c |6 ++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/hw/pc.c b/hw/pc.c
index ba14df0..99649ba 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -657,6 +657,12 @@ static void load_linux(void *fw_cfg,
}
 
initrd_size = get_image_size(initrd_filename);
+if (initrd_size < 0) {
+fprintf(stderr, "qemu: error reading initrd %s\n",
+ initrd_filename);
+exit(1);
+}
+
 initrd_addr = (initrd_max-initrd_size) & ~4095;
 
 initrd_data = qemu_malloc(initrd_size);
-- 
1.6.6.1





Re: [Qemu-devel] [PATCH] Check for invalid initrd file

2010-03-04 Thread jvrao
M. Mohan Kumar wrote:
> From c5dca54f67ec6aac16c6c5e09958417b2b3ee5a1 Mon Sep 17 00:00:00 2001
> From: M. Mohan Kumar 
> Date: Thu, 4 Mar 2010 14:23:07 +0530
> Subject: [PATCH] Check for invalid initrd file
> 
> When qemu is invoked with an invalid initrd file, it crashes. Following
> patch prints a error message and exits if an invalid initrd is specified.
> 
> Signed-off-by: M. Mohan Kumar 
> ---
>  hw/pc.c |6 ++
>  1 files changed, 6 insertions(+), 0 deletions(-)
> 
> diff --git a/hw/pc.c b/hw/pc.c
> index 4f6a522..551c901 100644
> --- a/hw/pc.c
> +++ b/hw/pc.c
> @@ -669,6 +669,12 @@ static void load_linux(void *fw_cfg,
>   }
>  
>   initrd_size = get_image_size(initrd_filename);
> + if (initrd_size < 0) {
> + fprintf(stderr, "qemu: initrd %s does not exist\n",
> + initrd_filename);
> + exit(1);

Looks good...but you may want to check the formatting. 

Also do we know for sure that the file not being there is the only reason for 
failure?
How about making the error statement more generic like.. "Error reading %S" 

Thanks,
JV

> + }
> +
>  initrd_addr = (initrd_max-initrd_size) & ~4095;
>  
>  initrd_data = qemu_malloc(initrd_size);






[Qemu-devel] [PATCH] Check for invalid initrd file

2010-03-04 Thread M. Mohan Kumar
From c5dca54f67ec6aac16c6c5e09958417b2b3ee5a1 Mon Sep 17 00:00:00 2001
From: M. Mohan Kumar 
Date: Thu, 4 Mar 2010 14:23:07 +0530
Subject: [PATCH] Check for invalid initrd file

When qemu is invoked with an invalid initrd file, it crashes. Following
patch prints a error message and exits if an invalid initrd is specified.

Signed-off-by: M. Mohan Kumar 
---
 hw/pc.c |6 ++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/hw/pc.c b/hw/pc.c
index 4f6a522..551c901 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -669,6 +669,12 @@ static void load_linux(void *fw_cfg,
}
 
initrd_size = get_image_size(initrd_filename);
+   if (initrd_size < 0) {
+   fprintf(stderr, "qemu: initrd %s does not exist\n",
+   initrd_filename);
+   exit(1);
+   }
+
 initrd_addr = (initrd_max-initrd_size) & ~4095;
 
 initrd_data = qemu_malloc(initrd_size);
-- 
1.6.6.1


-- 
M. Mohan Kumar,
Linux Technology Center, IBM India