From: Michael Roth <mdroth@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: qemu-stable@nongnu.org
Subject: [Qemu-devel] [PATCH 091/156] qcow2: Validate snapshot table offset/size (CVE-2014-0144)
Date: Tue, 8 Jul 2014 12:18:02 -0500 [thread overview]
Message-ID: <1404839947-1086-92-git-send-email-mdroth@linux.vnet.ibm.com> (raw)
In-Reply-To: <1404839947-1086-1-git-send-email-mdroth@linux.vnet.ibm.com>
From: Kevin Wolf <kwolf@redhat.com>
This avoid unbounded memory allocation and fixes a potential buffer
overflow on 32 bit hosts.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
(cherry picked from commit ce48f2f441ca98885267af6fd636a7cb804ee646)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
---
block/qcow2-snapshot.c | 29 ++++-------------------------
block/qcow2.c | 15 +++++++++++++++
block/qcow2.h | 29 ++++++++++++++++++++++++++++-
tests/qemu-iotests/080 | 27 +++++++++++++++++++++++++++
tests/qemu-iotests/080.out | 17 +++++++++++++++++
5 files changed, 91 insertions(+), 26 deletions(-)
diff --git a/block/qcow2-snapshot.c b/block/qcow2-snapshot.c
index 3529c68..7548165 100644
--- a/block/qcow2-snapshot.c
+++ b/block/qcow2-snapshot.c
@@ -26,31 +26,6 @@
#include "block/block_int.h"
#include "block/qcow2.h"
-typedef struct QEMU_PACKED QCowSnapshotHeader {
- /* header is 8 byte aligned */
- uint64_t l1_table_offset;
-
- uint32_t l1_size;
- uint16_t id_str_size;
- uint16_t name_size;
-
- uint32_t date_sec;
- uint32_t date_nsec;
-
- uint64_t vm_clock_nsec;
-
- uint32_t vm_state_size;
- uint32_t extra_data_size; /* for extension */
- /* extra data follows */
- /* id_str follows */
- /* name follows */
-} QCowSnapshotHeader;
-
-typedef struct QEMU_PACKED QCowSnapshotExtraData {
- uint64_t vm_state_size_large;
- uint64_t disk_size;
-} QCowSnapshotExtraData;
-
void qcow2_free_snapshots(BlockDriverState *bs)
{
BDRVQcowState *s = bs->opaque;
@@ -357,6 +332,10 @@ int qcow2_snapshot_create(BlockDriverState *bs, QEMUSnapshotInfo *sn_info)
uint64_t *l1_table = NULL;
int64_t l1_table_offset;
+ if (s->nb_snapshots >= QCOW_MAX_SNAPSHOTS) {
+ return -EFBIG;
+ }
+
memset(sn, 0, sizeof(*sn));
/* Generate an ID if it wasn't passed */
diff --git a/block/qcow2.c b/block/qcow2.c
index de86302..3b81c53 100644
--- a/block/qcow2.c
+++ b/block/qcow2.c
@@ -625,6 +625,21 @@ static int qcow2_open(BlockDriverState *bs, QDict *options, int flags,
goto fail;
}
+ /* Snapshot table offset/length */
+ if (header.nb_snapshots > QCOW_MAX_SNAPSHOTS) {
+ error_setg(errp, "Too many snapshots");
+ ret = -EINVAL;
+ goto fail;
+ }
+
+ ret = validate_table_offset(bs, header.snapshots_offset,
+ header.nb_snapshots,
+ sizeof(QCowSnapshotHeader));
+ if (ret < 0) {
+ error_setg(errp, "Invalid snapshot table offset");
+ goto fail;
+ }
+
s->snapshots_offset = header.snapshots_offset;
s->nb_snapshots = header.nb_snapshots;
diff --git a/block/qcow2.h b/block/qcow2.h
index 922e190..99fe092 100644
--- a/block/qcow2.h
+++ b/block/qcow2.h
@@ -38,6 +38,7 @@
#define QCOW_CRYPT_AES 1
#define QCOW_MAX_CRYPT_CLUSTERS 32
+#define QCOW_MAX_SNAPSHOTS 65536
/* indicate that the refcount of the referenced cluster is exactly one. */
#define QCOW_OFLAG_COPIED (1ULL << 63)
@@ -97,6 +98,32 @@ typedef struct QCowHeader {
uint32_t header_length;
} QEMU_PACKED QCowHeader;
+typedef struct QEMU_PACKED QCowSnapshotHeader {
+ /* header is 8 byte aligned */
+ uint64_t l1_table_offset;
+
+ uint32_t l1_size;
+ uint16_t id_str_size;
+ uint16_t name_size;
+
+ uint32_t date_sec;
+ uint32_t date_nsec;
+
+ uint64_t vm_clock_nsec;
+
+ uint32_t vm_state_size;
+ uint32_t extra_data_size; /* for extension */
+ /* extra data follows */
+ /* id_str follows */
+ /* name follows */
+} QCowSnapshotHeader;
+
+typedef struct QEMU_PACKED QCowSnapshotExtraData {
+ uint64_t vm_state_size_large;
+ uint64_t disk_size;
+} QCowSnapshotExtraData;
+
+
typedef struct QCowSnapshot {
uint64_t l1_table_offset;
uint32_t l1_size;
@@ -202,7 +229,7 @@ typedef struct BDRVQcowState {
AES_KEY aes_decrypt_key;
uint64_t snapshots_offset;
int snapshots_size;
- int nb_snapshots;
+ unsigned int nb_snapshots;
QCowSnapshot *snapshots;
int flags;
diff --git a/tests/qemu-iotests/080 b/tests/qemu-iotests/080
index f58ac73..8a8b460 100755
--- a/tests/qemu-iotests/080
+++ b/tests/qemu-iotests/080
@@ -47,6 +47,8 @@ header_size=104
offset_backing_file_offset=8
offset_refcount_table_offset=48
offset_refcount_table_clusters=56
+offset_nb_snapshots=60
+offset_snapshots_offset=64
offset_header_size=100
offset_ext_magic=$header_size
offset_ext_size=$((header_size + 4))
@@ -90,6 +92,31 @@ poke_file "$TEST_IMG" "$offset_refcount_table_offset" "\xff\xff\xff\xff\xff\xff\
poke_file "$TEST_IMG" "$offset_refcount_table_clusters" "\x00\x00\x00\x7f"
{ $QEMU_IO -c "read 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir
+echo
+echo "== Invalid snapshot table =="
+_make_test_img 64M
+poke_file "$TEST_IMG" "$offset_nb_snapshots" "\xff\xff\xff\xff"
+{ $QEMU_IO -c "read 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir
+poke_file "$TEST_IMG" "$offset_nb_snapshots" "\x7f\xff\xff\xff"
+{ $QEMU_IO -c "read 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir
+
+poke_file "$TEST_IMG" "$offset_snapshots_offset" "\xff\xff\xff\xff\xff\xff\x00\x00"
+poke_file "$TEST_IMG" "$offset_nb_snapshots" "\x00\x00\xff\xff"
+{ $QEMU_IO -c "read 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir
+
+poke_file "$TEST_IMG" "$offset_snapshots_offset" "\x12\x34\x56\x78\x90\xab\xcd\xef"
+poke_file "$TEST_IMG" "$offset_nb_snapshots" "\x00\x00\x00\x00"
+{ $QEMU_IO -c "read 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir
+
+echo
+echo "== Hitting snapshot table size limit =="
+_make_test_img 64M
+# Put the refcount table in a more or less safe place (16 MB)
+poke_file "$TEST_IMG" "$offset_snapshots_offset" "\x00\x00\x00\x00\x01\x00\x00\x00"
+poke_file "$TEST_IMG" "$offset_nb_snapshots" "\x00\x01\x00\x00"
+{ $QEMU_IMG snapshot -c test $TEST_IMG; } 2>&1 | _filter_testdir
+{ $QEMU_IO -c "read 0 512" $TEST_IMG; } 2>&1 | _filter_qemu_io | _filter_testdir
+
# success, all done
echo "*** done"
rm -f $seq.full
diff --git a/tests/qemu-iotests/080.out b/tests/qemu-iotests/080.out
index f919b58..b06f47f 100644
--- a/tests/qemu-iotests/080.out
+++ b/tests/qemu-iotests/080.out
@@ -30,4 +30,21 @@ no file open, try 'help open'
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
qemu-io: can't open device TEST_DIR/t.qcow2: Invalid reference count table offset
no file open, try 'help open'
+
+== Invalid snapshot table ==
+Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
+qemu-io: can't open device TEST_DIR/t.qcow2: Too many snapshots
+no file open, try 'help open'
+qemu-io: can't open device TEST_DIR/t.qcow2: Too many snapshots
+no file open, try 'help open'
+qemu-io: can't open device TEST_DIR/t.qcow2: Invalid snapshot table offset
+no file open, try 'help open'
+qemu-io: can't open device TEST_DIR/t.qcow2: Invalid snapshot table offset
+no file open, try 'help open'
+
+== Hitting snapshot table size limit ==
+Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
+qemu-img: Could not create snapshot 'test': -27 (File too large)
+read 512/512 bytes at offset 0
+512 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
*** done
--
1.9.1
next prev parent reply other threads:[~2014-07-08 17:23 UTC|newest]
Thread overview: 160+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-08 17:16 [Qemu-devel] Patch Round-up for stable 1.7.2, freeze on 2014-07-14 Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 001/156] char: restore read callback on a reattached (hotplug) chardev Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 002/156] scsi-bus: Fix transfer length for VERIFY with BYTCHK=11b Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 003/156] block/iscsi: fix deadlock on scsi check condition Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 004/156] s390x/virtio-hcall: Add range check for hypervisor call Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 005/156] target-i386: Fix CC_OP_CLR vs PF Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 006/156] target-i386: Fix ucomis and comis memory access Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 007/156] scsi: Change scsi sense buf size to 252 Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 008/156] qom: Avoid leaking str and bool properties on failure Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 009/156] tap: avoid deadlocking rx Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 010/156] tests: Fix 'make test' for i686 hosts (build regression) Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 011/156] configure: Don't use __int128_t for clang versions before 3.2 Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 012/156] mirror: fix throttling delay calculation Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 013/156] mirror: fix early wake from sleep due to aio Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 014/156] virtio-net: Do not filter VLANs without F_CTRL_VLAN Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 015/156] hw/net/stellaris_enet: Restructure tx_fifo code to avoid buffer overrun Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 016/156] hw/net/stellaris_enet: Correct handling of packet padding Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 017/156] qcow2: Flush metadata during read-only reopen Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 018/156] block-commit: speed is an optional parameter Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 019/156] ide: Correct improper smart self test counter reset in ide core Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 020/156] megasas: Implement LD_LIST_QUERY Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 021/156] arm: translate.c: Fix smlald Instruction Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 022/156] block: Prevent coroutine stack overflow when recursing in bdrv_open_backing_file Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 023/156] block: Use BDRV_O_NO_BACKING where appropriate Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 024/156] s390x/helper: Added format control bit to MMU translation Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 025/156] s390x: empty function stubs in preparation for __KVM_HAVE_GUEST_DEBUG Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 026/156] po/Makefile: fix $SRC_PATH reference Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 027/156] acpi: fix tables for no-hpet configuration Michael Roth
2014-07-08 17:16 ` [Qemu-devel] [PATCH 028/156] vmxnet3: validate interrupt indices coming from guest Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 029/156] vmxnet3: validate queues configuration " Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 030/156] vmxnet3: validate interrupt indices read on migration Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 031/156] vmxnet3: validate queues configuration " Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 032/156] vmstate: reduce code duplication Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 033/156] vmstate: add VMS_MUST_EXIST Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 034/156] vmstate: add VMSTATE_VALIDATE Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 035/156] virtio-net: fix buffer overflow on invalid state load Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 036/156] virtio-net: out-of-bounds buffer write " Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 037/156] virtio-net: out-of-bounds buffer write on load Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 038/156] virtio: out-of-bounds buffer write on invalid state load Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 039/156] ahci: fix buffer overrun " Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 040/156] hpet: " Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 041/156] hw/pci/pcie_aer.c: fix buffer overruns " Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 042/156] pl022: fix buffer overun " Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 043/156] Fix vmstate_info_int32_le comparison/assign Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 044/156] vmstate: fix buffer overflow in target-arm/machine.c Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 045/156] virtio: avoid buffer overrun on incoming migration Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 046/156] openpic: " Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 047/156] virtio: validate num_sg when mapping Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 048/156] pxa2xx: avoid buffer overrun on incoming migration Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 049/156] ssi-sd: fix buffer overrun on invalid state load Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 050/156] ssd0323: fix buffer overun " Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 051/156] tsc210x: fix buffer overrun " Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 052/156] zaurus: " Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 053/156] virtio-scsi: " Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 054/156] vmstate: s/VMSTATE_INT32_LE/VMSTATE_INT32_POSITIVE_LE/ Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 055/156] usb: sanity check setup_index+setup_len in post_load Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 056/156] savevm: Ignore minimum_version_id_old if there is no load_state_old Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 057/156] virtio: validate config_len on load Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 058/156] stellaris_enet: block migration Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 059/156] target-i386: fix set of registers zeroed on reset Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 060/156] target-arm: Make vbar_write 64bit friendly on 32bit hosts Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 061/156] linux-user/elfload.c: Fix incorrect ARM HWCAP bits Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 062/156] linux-user/elfload.c: Update " Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 063/156] linux-user/elfload.c: Fix A64 code which was incorrectly acting like A32 Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 064/156] spapr_pci: Fix number of returned vectors in ibm, change-msi Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 065/156] pci-assign: limit # of msix vectors Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 066/156] virtio: allow mapping up to max queue size Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 067/156] migration: remove duplicate code Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 068/156] migration: catch unknown flags in ram_load Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 069/156] qemu-iotests: add ./check -cloop support Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 070/156] qemu-iotests: add cloop input validation tests Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 071/156] block/cloop: validate block_size header field (CVE-2014-0144) Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 072/156] block/cloop: prevent offsets_size integer overflow (CVE-2014-0143) Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 073/156] block/cloop: refuse images with huge offsets arrays (CVE-2014-0144) Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 074/156] block/cloop: refuse images with bogus offsets (CVE-2014-0144) Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 075/156] block/cloop: fix offsets[] size off-by-one Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 076/156] qemu-iotests: Support for bochs format Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 077/156] bochs: Unify header structs and make them QEMU_PACKED Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 078/156] bochs: Use unsigned variables for offsets and sizes (CVE-2014-0147) Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 079/156] bochs: Check catalog_size header field (CVE-2014-0143) Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 080/156] bochs: Check extent_size header field (CVE-2014-0142) Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 081/156] bochs: Fix bitmap offset calculation Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 082/156] vpc/vhd: add bounds check for max_table_entries and block_size (CVE-2014-0144) Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 083/156] vpc: Validate block size (CVE-2014-0142) Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 084/156] vdi: add bounds checks for blocks_in_image and disk_size header fields (CVE-2014-0144) Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 085/156] vhdx: Bounds checking for block_size and logical_sector_size (CVE-2014-0148) Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 086/156] curl: check data size before memcpy to local buffer. (CVE-2014-0144) Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 087/156] qcow2: Check header_length (CVE-2014-0144) Michael Roth
2014-07-08 17:17 ` [Qemu-devel] [PATCH 088/156] qcow2: Check backing_file_offset (CVE-2014-0144) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 089/156] qcow2: Check refcount table size (CVE-2014-0144) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 090/156] qcow2: Validate refcount table offset Michael Roth
2014-07-08 17:18 ` Michael Roth [this message]
2014-07-08 17:18 ` [Qemu-devel] [PATCH 092/156] qcow2: Validate active L1 table offset and size (CVE-2014-0144) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 093/156] qcow2: Fix backing file name length check Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 094/156] qcow2: fix offset overflow in qcow2_alloc_clusters_at() Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 095/156] qcow2: Zero-initialise first cluster for new images Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 096/156] qcow2: Don't rely on free_cluster_index in alloc_refcount_block() (CVE-2014-0147) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 097/156] qcow2: Avoid integer overflow in get_refcount (CVE-2014-0143) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 098/156] qcow2: Check new refcount table size on growth Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 099/156] qcow2: Fix types in qcow2_alloc_clusters and alloc_clusters_noref Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 100/156] qcow2: Protect against some integer overflows in bdrv_check Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 101/156] qcow2: Fix new L1 table size check (CVE-2014-0143) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 102/156] dmg: coding style and indentation cleanup Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 103/156] dmg: prevent out-of-bounds array access on terminator Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 104/156] dmg: drop broken bdrv_pread() loop Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 105/156] dmg: use appropriate types when reading chunks Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 106/156] dmg: sanitize chunk length and sectorcount (CVE-2014-0145) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 107/156] dmg: use uint64_t consistently for sectors and lengths Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 108/156] dmg: prevent chunk buffer overflow (CVE-2014-0145) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 109/156] block: Limit request size (CVE-2014-0143) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 110/156] qcow2: Fix NULL dereference in qcow2_open() error path (CVE-2014-0146) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 111/156] qcow2: Fix copy_sectors() with VM state Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 112/156] qcow2: Fix L1 allocation size in qcow2_snapshot_load_tmp() (CVE-2014-0145) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 113/156] qcow2: Check maximum L1 size in qcow2_snapshot_load_tmp() (CVE-2014-0143) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 114/156] parallels: Fix catalog size integer overflow (CVE-2014-0143) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 115/156] parallels: Sanity check for s->tracks (CVE-2014-0142) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 116/156] qcow1: Make padding in the header explicit Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 117/156] qcow1: Check maximum cluster size Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 118/156] qcow1: Validate L2 table size (CVE-2014-0222) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 119/156] qcow1: Validate image size (CVE-2014-0223) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 120/156] qcow1: Stricter backing file length check Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 121/156] virtio-scsi: Plug memory leak on virtio_scsi_push_event() error path Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 122/156] target-xtensa: fix cross-page jumps/calls at the end of TB Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 123/156] cputlb: Fix regression with TCG interpreter (bug 1310324) Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 124/156] blockdev: Plug memory leak in blockdev_init() Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 125/156] blockdev: Plug memory leak in drive_init() Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 126/156] block/qapi: Plug memory leak in dump_qobject() case QTYPE_QERROR Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 127/156] block/vvfat: Plug memory leak in check_directory_consistency() Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 128/156] block/vvfat: Plug memory leak in read_directory() Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 129/156] block/sheepdog: Plug memory leak in sd_snapshot_create() Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 130/156] qemu-img: Plug memory leak in convert command Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 131/156] linux-user: Don't overrun guest buffer in sched_getaffinity Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 132/156] tcg-i386: Fix win64 qemu store Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 133/156] target-arm: Fix errors in writes to generic timer control registers Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 134/156] s390x/css: handle emw correctly for tsch Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 135/156] aio: fix qemu_bh_schedule() bh->ctx race condition Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 136/156] kvmclock: Ensure time in migration never goes backward Michael Roth
2014-07-15 19:43 ` Paolo Bonzini
2014-07-08 17:18 ` [Qemu-devel] [PATCH 137/156] kvmclock: Ensure proper env->tsc value for kvmclock_current_nsec calculation Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 138/156] qga: Fix handle fd leak in acquire_privilege() Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 139/156] rdma: bug fixes Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 140/156] scsi-disk: fix bug in scsi_block_new_request() introduced by commit 137745c Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 141/156] vhost: fix resource leak in error handling Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 142/156] usb: Fix usb-bt-dongle initialization Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 143/156] KVM: Fix GSI number space limit Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 144/156] coroutine-win32.c: Add noinline attribute to work around gcc bug Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 145/156] target-i386: Filter FEAT_7_0_EBX TCG features too Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 146/156] virtio-net: byteswap virtio-net header Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 147/156] virtio-serial: don't migrate the config space Michael Roth
2014-07-08 17:18 ` [Qemu-devel] [PATCH 148/156] nbd: Don't export a block device with no medium Michael Roth
2014-07-08 17:19 ` [Qemu-devel] [PATCH 149/156] nbd: Don't validate from and len in NBD_CMD_DISC Michael Roth
2014-07-08 17:19 ` [Qemu-devel] [PATCH 150/156] nbd: Close socket on negotiation failure Michael Roth
2014-07-08 17:19 ` [Qemu-devel] [PATCH 151/156] nbd: Shutdown socket before closing Michael Roth
2014-07-08 17:19 ` [Qemu-devel] [PATCH 152/156] qapi: zero-initialize all QMP command parameters Michael Roth
2014-07-08 17:19 ` [Qemu-devel] [PATCH 153/156] vnc: Fix tight_detect_smooth_image() for lossless case Michael Roth
2014-07-08 17:19 ` [Qemu-devel] [PATCH 154/156] sdhci: Fix misuse of qemu_free_irqs() Michael Roth
2014-07-08 17:19 ` [Qemu-devel] [PATCH 155/156] hw: Fix qemu_allocate_irqs() leaks Michael Roth
2014-07-08 17:19 ` [Qemu-devel] [PATCH 156/156] pci: assign devfn to pci_dev before calling pci_device_iommu_address_space() Michael Roth
2014-07-09 17:43 ` [Qemu-devel] Patch Round-up for stable 1.7.2, freeze on 2014-07-14 Dr. David Alan Gilbert
2014-07-10 18:05 ` Michael Roth
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=1404839947-1086-92-git-send-email-mdroth@linux.vnet.ibm.com \
--to=mdroth@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=qemu-stable@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).