From: Eric Blake <eblake@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>, qemu-devel@nongnu.org
Cc: jcody@redhat.com, armbru@redhat.com, stefanha@redhat.com,
mreitz@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 7/9] raw: Prohibit dangerous writes for probed images
Date: Mon, 10 Nov 2014 12:51:18 -0700 [thread overview]
Message-ID: <54611736.4090104@redhat.com> (raw)
In-Reply-To: <1415389165-16157-8-git-send-email-kwolf@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 2916 bytes --]
On 11/07/2014 12:39 PM, Kevin Wolf wrote:
> If the user neglects to specify the image format, QEMU probes the
> image to guess it automatically, for convenience.
>
[for those patches in 1-6 where I did not leave comments, I'm happy with
them, and saw that Max already gave R-b so I didn't spend thorough
review time on them]
>
> The other differences of this patch to the old one are that it doesn't
> silently write something different than the guest requested by zeroing
> out some bytes (it fails the request instead) and that it doesn't
> maintain a list of signatures in the raw driver (it calls the usual
> probe function instead).
>
> Note that this change doesn't introduce new breakage for false positive
> cases where the guest legitimately writes data into the first sector
> that matches the signatures of an image format (e.g. for nested virt):
> These cases were broken before, only the failure mode changes from
> corruption after the next restart (when the wrong format is probed) to
> failing the problematic write request.
I would feel better if this commit message explicitly mentioned that the
failed write can ONLY occur when probing occurs; therefore, a user can
ensure that guests can legitimately write anything to the first sector
by explicitly providing a format. But at least the error message does it.
I'm still not 100% convinced this is the patch we want, but am happy
enough that it won't break libvirt (which strives to always pass a
format), so I'm comfortable leaving a review.
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
> block.c | 5 +++--
> block/raw_bsd.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++-
> include/block/block_int.h | 3 +++
> 3 files changed, 62 insertions(+), 3 deletions(-)
> @@ -158,6 +202,17 @@ static int raw_open(BlockDriverState *bs, QDict *options, int flags,
> Error **errp)
> {
> bs->sg = bs->file->sg;
> +
> + if (bs->probed && !bdrv_is_read_only(bs)) {
> + fprintf(stderr,
> + "WARNING: Image format was not specified for '%s'.\n"
> + " Automatically detecting the format is dangerous for "
> + "raw images, write operations on block 0 will be restricted.\n"
> + " Specify the 'raw' format explicitly to remove the "
> + "restrictions.\n",
This error message works fairly well for me. Maybe the first line could
be a bit longer:
WARNING: Image format was not specified for '%s', and raw was assumed.\n
or maybe:
WARNING: Image format was not specified for '%s', and probing guessed raw.\n
but even with your original shorter wording,
Reviewed-by: Eric Blake <eblake@redhat.com>
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 539 bytes --]
next prev parent reply other threads:[~2014-11-10 19:51 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-07 19:39 [Qemu-devel] [PATCH v2 0/9] raw: Prohibit dangerous writes for probed images Kevin Wolf
2014-11-07 19:39 ` [Qemu-devel] [PATCH v2 1/9] qemu-io: Allow explicitly specifying format Kevin Wolf
2014-11-10 14:07 ` Max Reitz
2014-11-10 14:18 ` Max Reitz
2014-11-10 19:24 ` Eric Blake
2014-11-13 10:47 ` Stefan Hajnoczi
2014-11-07 19:39 ` [Qemu-devel] [PATCH v2 2/9] qemu-iotests: Use qemu-io -f $IMGFMT Kevin Wolf
2014-11-10 14:21 ` Max Reitz
2014-11-13 10:47 ` Stefan Hajnoczi
2014-11-07 19:39 ` [Qemu-devel] [PATCH v2 3/9] qemu-iotests: Add qemu-io format option in Python tests Kevin Wolf
2014-11-10 14:29 ` Max Reitz
2014-11-10 14:33 ` Kevin Wolf
2014-11-13 10:47 ` Stefan Hajnoczi
2014-11-07 19:39 ` [Qemu-devel] [PATCH v2 4/9] qtests: Specify image format explicitly Kevin Wolf
2014-11-10 14:39 ` Max Reitz
2014-11-13 10:47 ` Stefan Hajnoczi
2014-11-07 19:39 ` [Qemu-devel] [PATCH v2 5/9] block: Factor bdrv_probe_all() out of find_image_format() Kevin Wolf
2014-11-10 14:47 ` Max Reitz
2014-11-13 10:47 ` Stefan Hajnoczi
2014-11-07 19:39 ` [Qemu-devel] [PATCH v2 6/9] block: Read only one sector for format probing Kevin Wolf
2014-11-10 14:48 ` Max Reitz
2014-11-13 10:36 ` Stefan Hajnoczi
2014-11-07 19:39 ` [Qemu-devel] [PATCH v2 7/9] raw: Prohibit dangerous writes for probed images Kevin Wolf
2014-11-10 15:03 ` Max Reitz
2014-11-10 19:51 ` Eric Blake [this message]
2014-11-13 10:46 ` Stefan Hajnoczi
2014-11-07 19:39 ` [Qemu-devel] [PATCH v2 8/9] qemu-iotests: Fix stderr handling in common.qemu Kevin Wolf
2014-11-10 15:04 ` Max Reitz
2014-11-10 19:55 ` Eric Blake
2014-11-13 10:48 ` Stefan Hajnoczi
2014-11-07 19:39 ` [Qemu-devel] [PATCH v2 9/9] qemu-iotests: Test writing non-raw image headers to raw image Kevin Wolf
2014-11-10 15:53 ` Max Reitz
2014-11-10 20:00 ` Eric Blake
2014-11-13 10:48 ` Stefan Hajnoczi
2014-11-10 20:02 ` [Qemu-devel] [PATCH v2 0/9] raw: Prohibit dangerous writes for probed images Eric Blake
2014-11-11 10:03 ` Markus Armbruster
2014-11-13 10:49 ` Stefan Hajnoczi
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=54611736.4090104@redhat.com \
--to=eblake@redhat.com \
--cc=armbru@redhat.com \
--cc=jcody@redhat.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.