From: "Daniel P. Berrangé" <berrange@redhat.com>
To: Kevin Wolf <kwolf@redhat.com>
Cc: qemu-block@nongnu.org, mreitz@redhat.com, eblake@redhat.com,
qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 5/6] luks: Catch integer overflow for huge sizes
Date: Mon, 12 Mar 2018 11:42:05 +0000 [thread overview]
Message-ID: <20180312114205.GK3493@redhat.com> (raw)
In-Reply-To: <20180309172713.26318-6-kwolf@redhat.com>
On Fri, Mar 09, 2018 at 06:27:12PM +0100, Kevin Wolf wrote:
> When you request an image size close to UINT64_MAX, the addition of the
> crypto header may cause an integer overflow. Catch it instead of
> silently truncating the image size.
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
> block/crypto.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/block/crypto.c b/block/crypto.c
> index 4908d8627f..1b46519c53 100644
> --- a/block/crypto.c
> +++ b/block/crypto.c
> @@ -102,6 +102,11 @@ static ssize_t block_crypto_init_func(QCryptoBlock *block,
> {
> struct BlockCryptoCreateData *data = opaque;
>
> + if (headerlen > UINT64_MAX - data->size) {
> + error_setg(errp, "The requested file size is too large");
> + return -EFBIG;
> + }
> +
> /* User provided size should reflect amount of space made
> * available to the guest, so we must take account of that
> * which will be used by the crypto header
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
(if using INT64_MAX as Eric suggests)
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
next prev parent reply other threads:[~2018-03-12 11:42 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-03-09 17:27 [Qemu-devel] [PATCH 0/6] luks: Implement .bdrv_co_create Kevin Wolf
2018-03-09 17:27 ` [Qemu-devel] [PATCH 1/6] luks: Separate image file creation from formatting Kevin Wolf
2018-03-09 19:40 ` Eric Blake
2018-03-12 11:35 ` Daniel P. Berrangé
2018-03-12 11:43 ` Kevin Wolf
2018-03-12 11:46 ` Daniel P. Berrangé
2018-03-09 17:27 ` [Qemu-devel] [PATCH 2/6] luks: Create block_crypto_co_create_generic() Kevin Wolf
2018-03-09 20:06 ` Eric Blake
2018-03-12 11:48 ` Daniel P. Berrangé
2018-03-09 17:27 ` [Qemu-devel] [PATCH 3/6] luks: Support .bdrv_co_create Kevin Wolf
2018-03-09 20:15 ` Eric Blake
2018-03-12 11:40 ` Daniel P. Berrangé
2018-03-12 11:47 ` Kevin Wolf
2018-03-12 11:50 ` Daniel P. Berrangé
2018-03-12 12:14 ` Kevin Wolf
2018-03-12 13:07 ` Eric Blake
2018-03-09 17:27 ` [Qemu-devel] [PATCH 4/6] luks: Turn invalid assertion into check Kevin Wolf
2018-03-09 20:19 ` Eric Blake
2018-03-09 21:55 ` Kevin Wolf
2018-03-12 11:41 ` Daniel P. Berrangé
2018-03-09 17:27 ` [Qemu-devel] [PATCH 5/6] luks: Catch integer overflow for huge sizes Kevin Wolf
2018-03-09 20:21 ` Eric Blake
2018-03-12 11:42 ` Daniel P. Berrangé [this message]
2018-03-09 17:27 ` [Qemu-devel] [PATCH 6/6] qemu-iotests: Test luks QMP image creation Kevin Wolf
2018-03-09 20:26 ` Eric Blake
2018-03-12 11:45 ` Daniel P. Berrangé
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=20180312114205.GK3493@redhat.com \
--to=berrange@redhat.com \
--cc=eblake@redhat.com \
--cc=kwolf@redhat.com \
--cc=mreitz@redhat.com \
--cc=qemu-block@nongnu.org \
--cc=qemu-devel@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 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.