[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 1/6] vmdk: Use g_random_int to generate CID
From: |
Don Koch |
Subject: |
Re: [Qemu-devel] [PATCH v3 1/6] vmdk: Use g_random_int to generate CID |
Date: |
Wed, 3 Dec 2014 12:06:27 -0500 |
On Wed, 3 Dec 2014 18:28:36 +0800
Fam Zheng <address@hidden> wrote:
> This replaces two "time(NULL)" invocations with "g_random_int()".
> According to VMDK spec, CID "is a random 32‐bit value updated the first
> time the content of the virtual disk is modified after the virtual disk
> is opened". Using "seconds since epoch" is just a "lame way" to generate
> it, and not completely safe because of the low precision.
>
> Suggested-by: Markus Armbruster <address@hidden>
> Signed-off-by: Fam Zheng <address@hidden>
> Reviewed-by: Markus Armbruster <address@hidden>
> ---
Reviewed-by: Don Koch <address@hidden>
> block/vmdk.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/block/vmdk.c b/block/vmdk.c
> index 2cbfd3e..ebb4b70 100644
> --- a/block/vmdk.c
> +++ b/block/vmdk.c
> @@ -28,6 +28,7 @@
> #include "qemu/module.h"
> #include "migration/migration.h"
> #include <zlib.h>
> +#include <glib.h>
>
> #define VMDK3_MAGIC (('C' << 24) | ('O' << 16) | ('W' << 8) | 'D')
> #define VMDK4_MAGIC (('K' << 24) | ('D' << 16) | ('M' << 8) | 'V')
> @@ -1538,7 +1539,7 @@ static int vmdk_write(BlockDriverState *bs, int64_t
> sector_num,
> /* update CID on the first write every time the virtual disk is
> * opened */
> if (!s->cid_updated) {
> - ret = vmdk_write_cid(bs, time(NULL));
> + ret = vmdk_write_cid(bs, g_random_int());
> if (ret < 0) {
> return ret;
> }
> @@ -1922,7 +1923,7 @@ static int vmdk_create(const char *filename, QemuOpts
> *opts, Error **errp)
> }
> /* generate descriptor file */
> desc = g_strdup_printf(desc_template,
> - (uint32_t)time(NULL),
> + g_random_int(),
> parent_cid,
> fmt,
> parent_desc_line,
> --
> 1.9.3
>
>
- [Qemu-devel] [PATCH v3 0/6] vmdk: A few small fixes, Fam Zheng, 2014/12/03
- [Qemu-devel] [PATCH v3 1/6] vmdk: Use g_random_int to generate CID, Fam Zheng, 2014/12/03
- [Qemu-devel] [PATCH v3 2/6] vmdk: Fix comment to match code of extent lines, Fam Zheng, 2014/12/03
- [Qemu-devel] [PATCH v3 4/6] vmdk: Check descriptor file length when reading it, Fam Zheng, 2014/12/03
- [Qemu-devel] [PATCH v3 5/6] vmdk: Remove unnecessary initialization, Fam Zheng, 2014/12/03
- [Qemu-devel] [PATCH v3 3/6] vmdk: Clean up descriptor file reading, Fam Zheng, 2014/12/03