[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 13/26] block: open backing file as read-only when pr
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 13/26] block: open backing file as read-only when probing for size |
Date: |
Thu, 12 Apr 2012 14:01:03 +0200 |
bdrv_img_create will temporarily open the backing file to probe its size.
However, this could be done with a read-write open if the wrong flags are
passed to bdrv_img_create. Since there is really no documentation on
what flags can be passed, assume that bdrv_img_create receives the flags
with which the new image will be opened; sanitize them when opening
the backing file.
Reported-by: Eric Blake <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
---
block.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/block.c b/block.c
index 3f5bc92..e84a0a9 100644
--- a/block.c
+++ b/block.c
@@ -4064,10 +4064,15 @@ int bdrv_img_create(const char *filename, const char
*fmt,
if (backing_file && backing_file->value.s) {
uint64_t size;
char buf[32];
+ int back_flags;
+
+ /* backing files always opened read-only */
+ back_flags =
+ flags & ~(BDRV_O_RDWR | BDRV_O_SNAPSHOT | BDRV_O_NO_BACKING);
bs = bdrv_new("");
- ret = bdrv_open(bs, backing_file->value.s, flags, backing_drv);
+ ret = bdrv_open(bs, backing_file->value.s, back_flags,
backing_drv);
if (ret < 0) {
error_report("Could not open '%s'", backing_file->value.s);
goto out;
--
1.7.9.3
- [Qemu-devel] [PATCH 05/26] aio: return "AIO in progress" state from qemu_aio_wait, (continued)
- [Qemu-devel] [PATCH 05/26] aio: return "AIO in progress" state from qemu_aio_wait, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 04/26] aio: remove process_queue callback and qemu_aio_process_queue, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 07/26] block: add the support to drain throttled requests, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 08/26] block: add mode argument to blockdev-snapshot-sync, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 06/26] aio: simplify qemu_aio_wait, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 09/26] block: fail live snapshot if disk has no medium, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 10/26] block: fix snapshot on QED, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 14/26] block: fix allocation size for dirty bitmap, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 12/26] block: update in-memory backing file and format, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 11/26] block: push bdrv_change_backing_file error checking up from drivers, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 13/26] block: open backing file as read-only when probing for size,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 22/26] stream: do not copy unallocated sectors from the base, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 23/26] block: implement is_allocated for raw, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 24/26] stream: tweak usage of bdrv_co_is_allocated, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 16/26] qemu-io: correctly print non-integer values as decimals, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 25/26] stream: move is_allocated_above to block.c, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 17/26] qemu-io: fix the alloc command, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 15/26] qemu-iotests: strip spaces from qemu-img/qemu-io/qemu command lines, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 21/26] stream: fix ratelimiting corner case, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 18/26] stream: fix sectors not allocated test, Paolo Bonzini, 2012/04/12
- [Qemu-devel] [PATCH 19/26] stream: add testcase for partial streaming, Paolo Bonzini, 2012/04/12