[Qemu-devel] [PATCH] block/curl.c: Refuse to open the handle for writes.

2013-06-10 Thread Richard W.M. Jones
This simple patch avoids a segfault in qemu if the user tries to open
a curl disk for writing.

This was previously part of Fam Zheng's curl patch series, but it
stands alone and we shouldn't forget about it.

Rich.




[Qemu-devel] [PATCH] block/curl.c: Refuse to open the handle for writes.

2013-06-10 Thread Richard W.M. Jones
From: Richard W.M. Jones rjo...@redhat.com

Signed-off-by: Richard W.M. Jones rjo...@redhat.com
Signed-off-by: Fam Zheng f...@redhat.com
---
 block/curl.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/block/curl.c b/block/curl.c
index b8935fd..f1e302b 100644
--- a/block/curl.c
+++ b/block/curl.c
@@ -406,6 +406,10 @@ static int curl_open(BlockDriverState *bs, QDict *options, 
int flags)
 
 static int inited = 0;
 
+if (flags  BDRV_O_RDWR) {
+return -ENOTSUP;
+}
+
 opts = qemu_opts_create_nofail(runtime_opts);
 qemu_opts_absorb_qdict(opts, options, local_err);
 if (error_is_set(local_err)) {
-- 
1.8.2.1




Re: [Qemu-devel] [PATCH] block/curl.c: Refuse to open the handle for writes.

2013-06-10 Thread Kevin Wolf
Am 10.06.2013 um 12:06 hat Richard W.M. Jones geschrieben:
 From: Richard W.M. Jones rjo...@redhat.com
 
 Signed-off-by: Richard W.M. Jones rjo...@redhat.com
 Signed-off-by: Fam Zheng f...@redhat.com
 ---
  block/curl.c | 4 
  1 file changed, 4 insertions(+)
 
 diff --git a/block/curl.c b/block/curl.c
 index b8935fd..f1e302b 100644
 --- a/block/curl.c
 +++ b/block/curl.c
 @@ -406,6 +406,10 @@ static int curl_open(BlockDriverState *bs, QDict 
 *options, int flags)
  
  static int inited = 0;
  
 +if (flags  BDRV_O_RDWR) {
 +return -ENOTSUP;
 +}
 +

Thanks, I applied this patch to the block branch for now, but I think a
v2 with some better error reporting wouldn't hurt. We can either add a
qerror_report() call or at least change the error code to -EROFS or
something like that.

Kevin



[Qemu-devel] [PATCH] block/curl.c: Refuse to open the handle for writes.

2013-05-22 Thread Richard W.M. Jones
From: Richard W.M. Jones rjo...@redhat.com

---
 block/curl.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/block/curl.c b/block/curl.c
index b8935fd..f1e302b 100644
--- a/block/curl.c
+++ b/block/curl.c
@@ -406,6 +406,10 @@ static int curl_open(BlockDriverState *bs, QDict *options, 
int flags)
 
 static int inited = 0;
 
+if (flags  BDRV_O_RDWR) {
+return -ENOTSUP;
+}
+
 opts = qemu_opts_create_nofail(runtime_opts);
 qemu_opts_absorb_qdict(opts, options, local_err);
 if (error_is_set(local_err)) {
-- 
1.8.2.1




Re: [Qemu-devel] [PATCH] block/curl.c: Refuse to open the handle for writes.

2013-05-22 Thread Fam Zheng
On Wed, 05/22 16:01, Richard W.M. Jones wrote:
 From: Richard W.M. Jones rjo...@redhat.com
 
 ---
  block/curl.c | 4 
  1 file changed, 4 insertions(+)
 
 diff --git a/block/curl.c b/block/curl.c
 index b8935fd..f1e302b 100644
 --- a/block/curl.c
 +++ b/block/curl.c
 @@ -406,6 +406,10 @@ static int curl_open(BlockDriverState *bs, QDict 
 *options, int flags)
  
  static int inited = 0;
  
 +if (flags  BDRV_O_RDWR) {
 +return -ENOTSUP;
 +}
 +
  opts = qemu_opts_create_nofail(runtime_opts);
  qemu_opts_absorb_qdict(opts, options, local_err);
  if (error_is_set(local_err)) {
 -- 
 1.8.2.1
 

Thanks, I'll include this in the new version of my series.

-- 
Fam