All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alberto Garcia <berto@igalia.com>
Cc: Alberto Garcia <berto@igalia.com>,
	qemu-devel@nongnu.org, qemu-block@nongnu.org,
	Max Reitz <mreitz@redhat.com>, Thomas Huth <thuth@redhat.com>,
	"R . Nageswara Sastry" <nasastry@in.ibm.com>
Subject: [Qemu-devel] [PATCH v2 0/7] Misc qcow2 corruption checks
Date: Fri,  3 Nov 2017 16:18:49 +0200	[thread overview]
Message-ID: <cover.1509718618.git.berto@igalia.com> (raw)

This series contains a few checks that prevent QEMU from crashing
under some scenarios with corrupted qcow2 images.

The first patch solves the crash reported here:

  https://bugs.launchpad.net/qemu/+bug/1728615

And the others solve similar crashes that I detected in the process of
fixing this one.

Regards,

Berto

v2:
- Use goto fail in the l2_allocate() check [Max]
- Add check and test case for allocation of compressed clusters [Max]
- Add test case for header.refcount_table_offset == 0
- Add overlap checks to qcow2_crypto_hdr_init_func() [Max]

v1: https://lists.gnu.org/archive/html/qemu-block/2017-11/msg00010.html
- Initial version

Output of backport-diff against v1:

Key:
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively

001/7:[----] [--] 'qcow2: Prevent allocating refcount blocks at offset 0'
002/7:[0003] [FC] 'qcow2: Prevent allocating L2 tables at offset 0'
003/7:[down] 'qcow2: Prevent allocating compressed clusters at offset 0'
004/7:[----] [-C] 'qcow2: Don't open images with header.refcount_table_clusters == 0'
005/7:[down] 'qcow2: Add iotest for an image with header.refcount_table_offset == 0'
006/7:[----] [--] 'qcow2: Add iotest for an empty refcount table'
007/7:[down] 'qcow2: Assert that the crypto header does not overlap other metadata'

Alberto Garcia (7):
  qcow2: Prevent allocating refcount blocks at offset 0
  qcow2: Prevent allocating L2 tables at offset 0
  qcow2: Prevent allocating compressed clusters at offset 0
  qcow2: Don't open images with header.refcount_table_clusters == 0
  qcow2: Add iotest for an image with header.refcount_table_offset == 0
  qcow2: Add iotest for an empty refcount table
  qcow2: Assert that the crypto header does not overlap other metadata

 block/qcow2-cluster.c      |  8 ++++++++
 block/qcow2-refcount.c     | 15 +++++++++++++-
 block/qcow2.c              |  7 +++++++
 tests/qemu-iotests/060     | 49 ++++++++++++++++++++++++++++++++++++++++++++++
 tests/qemu-iotests/060.out | 39 ++++++++++++++++++++++++++++++++++++
 5 files changed, 117 insertions(+), 1 deletion(-)

-- 
2.11.0

             reply	other threads:[~2017-11-03 14:19 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-03 14:18 Alberto Garcia [this message]
2017-11-03 14:18 ` [Qemu-devel] [PATCH v2 1/7] qcow2: Prevent allocating refcount blocks at offset 0 Alberto Garcia
2017-11-03 14:18 ` [Qemu-devel] [PATCH v2 2/7] qcow2: Prevent allocating L2 tables " Alberto Garcia
2017-11-03 14:18 ` [Qemu-devel] [PATCH v2 3/7] qcow2: Prevent allocating compressed clusters " Alberto Garcia
2017-11-03 16:27   ` Max Reitz
2017-11-03 20:22     ` Alberto Garcia
2017-11-03 20:32       ` [Qemu-devel] [Qemu-block] " Alberto Garcia
2017-11-06 12:36         ` Max Reitz
2017-11-06 12:52           ` Alberto Garcia
2017-11-03 14:18 ` [Qemu-devel] [PATCH v2 4/7] qcow2: Don't open images with header.refcount_table_clusters == 0 Alberto Garcia
2017-11-07 16:43   ` [Qemu-devel] [Qemu-block] " Kevin Wolf
2017-11-08  9:55     ` Alberto Garcia
2017-11-03 14:18 ` [Qemu-devel] [PATCH v2 5/7] qcow2: Add iotest for an image with header.refcount_table_offset " Alberto Garcia
2017-11-03 16:36   ` Max Reitz
2017-11-03 14:18 ` [Qemu-devel] [PATCH v2 6/7] qcow2: Add iotest for an empty refcount table Alberto Garcia
2017-11-03 14:18 ` [Qemu-devel] [PATCH v2 7/7] qcow2: Assert that the crypto header does not overlap other metadata Alberto Garcia
2017-11-03 14:21   ` Daniel P. Berrange
2017-11-03 16:37 ` [Qemu-devel] [PATCH v2 0/7] Misc qcow2 corruption checks Max Reitz

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=cover.1509718618.git.berto@igalia.com \
    --to=berto@igalia.com \
    --cc=mreitz@redhat.com \
    --cc=nasastry@in.ibm.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=thuth@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.