All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Edmondson <dme@dme.org>
To: "Philippe Mathieu-Daudé" <philmd@redhat.com>, qemu-devel@nongnu.org
Cc: Kevin Wolf <kwolf@redhat.com>, Stefan Weil <sw@weilnetz.de>,
	Stefan Hajnoczi <stefanha@redhat.com>,
	qemu-block@nongnu.org, Max Reitz <mreitz@redhat.com>
Subject: Re: [RFC PATCH 1/4] block/vdi: When writing new bmap entry fails, don't leak the buffer
Date: Tue, 09 Mar 2021 11:58:47 +0000	[thread overview]
Message-ID: <m2mtvch72g.fsf@dme.org> (raw)
In-Reply-To: <34865f4c-dc32-4298-6ec9-c8690d738435@redhat.com>

On Tuesday, 2021-03-09 at 12:09:55 +01, Philippe Mathieu-Daudé wrote:

> On 3/9/21 11:21 AM, David Edmondson wrote:
>> If a new bitmap entry is allocated, requiring the entire block to be
>> written, avoiding leaking the buffer allocated for the block should
>> the write fail.
>> 
>> Signed-off-by: David Edmondson <david.edmondson@oracle.com>
>
> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>

Thanks.

>> ---
>>  block/vdi.c | 1 +
>>  1 file changed, 1 insertion(+)
>> 
>> diff --git a/block/vdi.c b/block/vdi.c
>> index 5627e7d764..2a6dc26124 100644
>> --- a/block/vdi.c
>> +++ b/block/vdi.c
>> @@ -690,6 +690,7 @@ nonallocating_write:
>>  
>>      logout("finished data write\n");
>>      if (ret < 0) {
>> +        g_free(block);
>>          return ret;
>>      }
>
> Alternative using g_autofree:

Newfangled witchy magic!

I'm happy to change it if you think it beneficial.

> -- >8 --
> diff --git a/block/vdi.c b/block/vdi.c
> index 5627e7d764a..1cd8ae2ba99 100644
> --- a/block/vdi.c
> +++ b/block/vdi.c
> @@ -612,7 +612,7 @@ vdi_co_pwritev(BlockDriverState *bs, uint64_t
> offset, uint64_t bytes,
>      uint64_t data_offset;
>      uint32_t bmap_first = VDI_UNALLOCATED;
>      uint32_t bmap_last = VDI_UNALLOCATED;
> -    uint8_t *block = NULL;
> +    g_autofree uint8_t *block = NULL;
>      uint64_t bytes_done = 0;
>      int ret = 0;
>
> @@ -705,9 +705,6 @@ nonallocating_write:
>          *header = s->header;
>          vdi_header_to_le(header);
>          ret = bdrv_pwrite(bs->file, 0, block, sizeof(VdiHeader));
> -        g_free(block);
> -        block = NULL;
> -
>          if (ret < 0) {
>              return ret;
>          }
> ---

dme.
-- 
Tonight I think I'll walk alone, I'll find my soul as I go home.


  reply	other threads:[~2021-03-09 12:57 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-09 10:21 [RFC PATCH 0/4] coroutine rwlock downgrade fix, minor VDI changes David Edmondson
2021-03-09 10:21 ` [RFC PATCH 1/4] block/vdi: When writing new bmap entry fails, don't leak the buffer David Edmondson
2021-03-09 11:09   ` Philippe Mathieu-Daudé
2021-03-09 11:58     ` David Edmondson [this message]
2021-03-09 12:06       ` Philippe Mathieu-Daudé
2021-03-09 13:07         ` Paolo Bonzini
2021-03-09 10:21 ` [RFC PATCH 2/4] block/vdi: Don't assume that blocks are larger than VdiHeader David Edmondson
2021-03-09 10:21 ` [RFC PATCH 3/4] coroutine/mutex: Store the coroutine in the CoWaitRecord only once David Edmondson
2021-03-09 10:49   ` Paolo Bonzini
2021-03-09 11:11   ` Philippe Mathieu-Daudé
2021-03-09 10:21 ` [RFC PATCH 4/4] coroutine/rwlock: Wake writers in preference to readers David Edmondson
2021-03-09 10:59   ` Paolo Bonzini
2021-03-09 11:06   ` Paolo Bonzini
2021-03-09 11:57     ` David Edmondson

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=m2mtvch72g.fsf@dme.org \
    --to=dme@dme.org \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=philmd@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    --cc=sw@weilnetz.de \
    /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.