[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v1 2/3] qcow2: fix offset overflow
From: |
Kevin Wolf |
Subject: |
Re: [Qemu-devel] [PATCH v1 2/3] qcow2: fix offset overflow |
Date: |
Mon, 20 Jan 2014 16:14:10 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
Am 19.01.2014 um 17:12 hat Max Reitz geschrieben:
> On 30.12.2013 06:29, Hu Tao wrote:
> >When cluster size is big enough it can lead offset overflow
> >in qcow2_alloc_clusters_at(). This patch fixes it.
> >
> >Signed-off-by: Hu Tao <address@hidden>
> >---
> > block/qcow2-refcount.c | 7 ++++++-
> > 1 file changed, 6 insertions(+), 1 deletion(-)
> >
> >diff --git a/block/qcow2-refcount.c b/block/qcow2-refcount.c
> >index c974abe..b3ebb7f 100644
> >--- a/block/qcow2-refcount.c
> >+++ b/block/qcow2-refcount.c
> >@@ -676,7 +676,12 @@ int qcow2_alloc_clusters_at(BlockDriverState *bs,
> >uint64_t offset,
> > BDRVQcowState *s = bs->opaque;
> > uint64_t cluster_index;
> > uint64_t old_free_cluster_index;
> >- int i, refcount, ret;
> >+ uint64_t i;
> >+ int refcount, ret;
> >+
> >+ if (nb_clusters <= 0) {
> >+ return 0;
>
> I think I'd rather return -EINVAL here.
In fact, I think return 0 is fine for nb_clusters == 0, and we should
assert(nb_clusters >= 0).
Kevin