From: Stefan Hajnoczi <stefanha@redhat.com>
To: Evgeny Budilovsky <evgeny.budilovsky@ravellosystems.com>
Cc: Kevin Wolf <kwolf@redhat.com>,
hvx@ravellosystems.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2] allow reading variable size vmdk descriptor files
Date: Wed, 12 Jun 2013 16:15:27 +0200 [thread overview]
Message-ID: <20130612141527.GA17741@stefanha-thinkpad.muc.redhat.com> (raw)
In-Reply-To: <1371035190-13328-1-git-send-email-evgeny.budilovsky@ravellosystems.com>
On Wed, Jun 12, 2013 at 02:06:30PM +0300, Evgeny Budilovsky wrote:
> @@ -719,27 +719,40 @@ static int vmdk_open_desc_file(BlockDriverState *bs, int flags,
> int64_t desc_offset)
> {
> int ret;
> - char buf[2048];
> + char *buf = NULL;
> char ct[128];
> BDRVVmdkState *s = bs->opaque;
> + int64_t size;
>
> - ret = bdrv_pread(bs->file, desc_offset, buf, sizeof(buf));
> + size = bdrv_getlength(bs->file);
> + if (size < 0) {
> + return -EINVAL;
> + }
> +
> + size = MIN(size, 1 << 20); /* avoid unbounded allocation */
I think this is okay, initially I was worried that this function might
be called to probe files which we have not identified as descriptor
files yet (they could be big!).
But looking at the callers, it should be reasonable to read up to 1 MB.
(Would have been bad to read 1 MB just to check if this parses as a
descriptor file.)
> + buf = g_malloc0(size + 1);
> +
> + ret = bdrv_pread(bs->file, desc_offset, buf, size);
> if (ret < 0) {
> - return ret;
> + goto exit;
> }
> - buf[2047] = '\0';
Thanks for pointing out the g_malloc0(), I missed it.
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
next prev parent reply other threads:[~2013-06-12 14:15 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-12 8:04 [Qemu-devel] [PATCH] allow reading variable size vmdk descriptor files Evgeny Budilovsky
2013-06-12 10:17 ` Stefan Hajnoczi
2013-06-12 10:38 ` Evgeny Budilovsky
2013-06-12 10:30 ` Kevin Wolf
2013-06-12 10:41 ` Evgeny Budilovsky
2013-06-12 11:06 ` [Qemu-devel] [PATCH v2] " Evgeny Budilovsky
2013-06-12 14:15 ` Stefan Hajnoczi [this message]
2013-06-12 15:17 ` Kevin Wolf
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20130612141527.GA17741@stefanha-thinkpad.muc.redhat.com \
--to=stefanha@redhat.com \
--cc=evgeny.budilovsky@ravellosystems.com \
--cc=hvx@ravellosystems.com \
--cc=kwolf@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).