qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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

  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).