From: Kevin Wolf <kwolf@redhat.com>
To: qemu-block@nongnu.org
Cc: kwolf@redhat.com, peter.maydell@linaro.org, qemu-devel@nongnu.org
Subject: [Qemu-devel] [PULL 01/13] qcow: fix a reference leak
Date: Mon, 30 Jul 2018 17:09:46 +0200 [thread overview]
Message-ID: <20180730150958.14607-2-kwolf@redhat.com> (raw)
In-Reply-To: <20180730150958.14607-1-kwolf@redhat.com>
From: KONRAD Frederic <frederic.konrad@adacore.com>
Since 42a3e1ab367cdf38cce093de24eb406b99a4ef96 qemu asserts when using the
vvfat driver:
git clone git://qemu.org/qemu.git
cd qemu
./configure --target-list=ppc-softmmu --enable-debug
make -j8
mkdir foo
touch foo/hello
./ppc-softmmu/qemu-system-ppc -M prep --nographic --monitor null \
-hda fat:rw:./foo
"Ctrl-C"
qemu-system-ppc: block.c:3368: bdrv_close_all: Assertion \
`((&all_bdrv_states)->tqh_first == ((void *)0))' failed.
This is because we reference bs twice in qcow_co_create(..) one time in
bdrv_open_blockdev_ref(..) and in blk_insert_bs(..) but we unref it only once
in blk_unref which leads to the reference leak.
Note that I didn't tested much QCOW after this change as I don't use it much.
Signed-off-by: KONRAD Frederic <frederic.konrad@adacore.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
block/qcow.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/block/qcow.c b/block/qcow.c
index 102d058d1c..385d935258 100644
--- a/block/qcow.c
+++ b/block/qcow.c
@@ -938,6 +938,7 @@ static int coroutine_fn qcow_co_create(BlockdevCreateOptions *opts,
ret = 0;
exit:
blk_unref(qcow_blk);
+ bdrv_unref(bs);
qcrypto_block_free(crypto);
return ret;
}
--
2.13.6
next prev parent reply other threads:[~2018-07-30 15:10 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-30 15:09 [Qemu-devel] [PULL 00/13] Block layer patches Kevin Wolf
2018-07-30 15:09 ` Kevin Wolf [this message]
2018-07-30 15:09 ` [Qemu-devel] [PULL 02/13] qcow2: A grammar fix in conflicting cache sizing error message Kevin Wolf
2018-07-30 15:09 ` [Qemu-devel] [PULL 03/13] file-posix: Handle EINTR in preallocation=full write Kevin Wolf
2018-07-30 15:09 ` [Qemu-devel] [PULL 04/13] docs: Describe using images in writing iotests Kevin Wolf
2018-07-30 15:09 ` [Qemu-devel] [PULL 05/13] iotests: Don't lock /dev/null in 226 Kevin Wolf
2018-07-30 15:09 ` [Qemu-devel] [PULL 06/13] Revert "qemu-img: Document copy offloading implications with -S and -c" Kevin Wolf
2018-07-30 15:09 ` [Qemu-devel] [PULL 07/13] qemu-img: Add -C option for convert with copy offloading Kevin Wolf
2018-07-30 15:09 ` [Qemu-devel] [PULL 08/13] iotests: Add test for 'qemu-img convert -C' compatibility Kevin Wolf
2018-07-30 15:09 ` [Qemu-devel] [PULL 09/13] block: Fix documentation for BDRV_REQ_MAY_UNMAP Kevin Wolf
2018-07-30 15:09 ` [Qemu-devel] [PULL 10/13] file-posix: Fix write_zeroes with unmap on block devices Kevin Wolf
2018-07-30 15:09 ` [Qemu-devel] [PULL 11/13] block/qapi: Add 'qdev' field to query-blockstats result Kevin Wolf
2018-07-30 15:09 ` [Qemu-devel] [PULL 12/13] block/qapi: Include anonymous BBs in query-blockstats Kevin Wolf
2018-07-30 15:09 ` [Qemu-devel] [PULL 13/13] qemu-iotests: Test query-blockstats with -drive and -blockdev Kevin Wolf
2018-07-31 9:02 ` [Qemu-devel] [PULL 00/13] Block layer patches Peter Maydell
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=20180730150958.14607-2-kwolf@redhat.com \
--to=kwolf@redhat.com \
--cc=peter.maydell@linaro.org \
--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.