qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] overflow of int ret: use ssize_t for ret


From: Stefan Priebe - Profihost AG
Subject: Re: [Qemu-devel] [PATCH] overflow of int ret: use ssize_t for ret
Date: Fri, 23 Nov 2012 15:38:17 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121028 Thunderbird/16.0.2

Hi,

i'm not a ceph or inktank guy. I can't made any decision on what to change. At least right now you'll see failing I/O's in your guest, when you discard whole disks.

I could fix this for me with int64 and with ssize_t. So if i should resend another patch i need a concrete advise how to patch.

Thanks!

Greets,
Stefan

Am 23.11.2012 15:15, schrieb Peter Maydell:
On 23 November 2012 14:11, Stefan Hajnoczi <address@hidden> wrote:
On Thu, Nov 22, 2012 at 10:07 AM, Stefan Priebe <address@hidden> wrote:
diff --git a/block/rbd.c b/block/rbd.c
index 5a0f79f..0384c6c 100644
--- a/block/rbd.c
+++ b/block/rbd.c
@@ -69,7 +69,7 @@ typedef enum {
  typedef struct RBDAIOCB {
      BlockDriverAIOCB common;
      QEMUBH *bh;
-    int ret;
+    ssize_t ret;
      QEMUIOVector *qiov;
      char *bounce;
      RBDAIOCmd cmd;
@@ -86,7 +86,7 @@ typedef struct RADOSCB {
      int done;
      int64_t size;
      char *buf;
-    int ret;
+    ssize_t ret;
  } RADOSCB;

  #define RBD_FD_READ 0

I preferred your previous patch:

ssize_t on 32-bit hosts has sizeof(ssize_t) == 4.  In
qemu_rbd_complete_aio() we may assign acb->ret = rcb->size.  Here the
size field is int64_t, so ssize_t ret would truncate the value.

The rcb size field should be a size_t: it is used for calling
rbd_aio_write and rbd_aio_read so if we've overflowed 32 bits
then we've already got a problem there.

-- PMM
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to address@hidden
More majordomo info at  http://vger.kernel.org/majordomo-info.html




reply via email to

[Prev in Thread] Current Thread [Next in Thread]