[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 1/9] qapi: Add optional field "name" to block
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH v4 1/9] qapi: Add optional field "name" to block dirty bitmap |
Date: |
Thu, 27 Mar 2014 16:30:13 +0100 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
On Thu, Mar 27, 2014 at 05:09:40PM +0800, Fam Zheng wrote:
> @@ -5079,18 +5080,45 @@ bool bdrv_qiov_is_aligned(BlockDriverState *bs,
> QEMUIOVector *qiov)
> return true;
> }
>
> -BdrvDirtyBitmap *bdrv_create_dirty_bitmap(BlockDriverState *bs, int
> granularity)
> +BdrvDirtyBitmap *bdrv_find_dirty_bitmap(BlockDriverState *bs, const char
> *name)
> +{
> + BdrvDirtyBitmap *bm;
> + QLIST_FOREACH(bm, &bs->dirty_bitmaps, list) {
> + if (!strcmp(name, bm->name)) {
> + return bm;
> + }
> + }
> + return NULL;
> +}
> +
> +void bdrv_dirty_bitmap_make_anon(BlockDriverState *bs, BdrvDirtyBitmap
> *bitmap)
> +{
> + g_free(bitmap->name);
> + bitmap->name = NULL;
> +}
This looks dangerous since strcmp() does not check for NULL pointers. I
guess you need to add a check to bdrv_find_dirty_bitmap().
> @@ -5120,6 +5149,8 @@ BlockDirtyInfoList
> *bdrv_query_dirty_bitmaps(BlockDriverState *bs)
> info->count = bdrv_get_dirty_count(bs, bm);
> info->granularity =
> ((int64_t) BDRV_SECTOR_SIZE << hbitmap_granularity(bm->bitmap));
> + info->has_name = bm->name[0] != '\0';
> + info->name = g_strdup(bm->name);
This looks dangerous too. What if ->name is NULL?
- [Qemu-devel] [PATCH v4 0/9] QMP: Introduce incremental drive-backup with in-memory dirty bitmap, Fam Zheng, 2014/03/27
- [Qemu-devel] [PATCH v4 1/9] qapi: Add optional field "name" to block dirty bitmap, Fam Zheng, 2014/03/27
- Re: [Qemu-devel] [PATCH v4 1/9] qapi: Add optional field "name" to block dirty bitmap,
Stefan Hajnoczi <=
- [Qemu-devel] [PATCH v4 2/9] qmp: Add dirty-bitmap-add and dirty-bitmap-remove, Fam Zheng, 2014/03/27
- [Qemu-devel] [PATCH v4 4/9] block: Introduce bdrv_dirty_bitmap_granularity(), Fam Zheng, 2014/03/27
- [Qemu-devel] [PATCH v4 5/9] hbitmap: Add hbitmap_copy, Fam Zheng, 2014/03/27
- [Qemu-devel] [PATCH v4 6/9] block: Add bdrv_copy_dirty_bitmap and bdrv_reset_dirty_bitmap, Fam Zheng, 2014/03/27
- [Qemu-devel] [PATCH v4 7/9] qmp: Add dirty-bitmap-enable and dirty-bitmap-disable, Fam Zheng, 2014/03/27