diff options
author | Kevin Wolf <kwolf@redhat.com> | 2018-08-13 15:23:49 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2018-08-15 12:50:39 +0200 |
commit | f62492bb8d1ea7f7e156ffbdf411de46107072c5 (patch) | |
tree | 7d839f1f9ea41aa5fa7e661339057da0064d9d82 /block | |
parent | 38441756b70eec5807b5f60dad11a93a91199866 (diff) |
block/qapi: Fix memory leak in qmp_query_blockstats()
For BlockBackends that are skipped in query-blockstats, we would leak
info since commit 567dcb31. Allocate info only later to avoid the memory
leak.
Fixes: CID 1394727
Cc: qemu-stable@nongnu.org
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/qapi.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/block/qapi.c b/block/qapi.c index 339727f0f4..c66f949db8 100644 --- a/block/qapi.c +++ b/block/qapi.c @@ -594,7 +594,7 @@ BlockStatsList *qmp_query_blockstats(bool has_query_nodes, } } else { for (blk = blk_all_next(NULL); blk; blk = blk_all_next(blk)) { - BlockStatsList *info = g_malloc0(sizeof(*info)); + BlockStatsList *info; AioContext *ctx = blk_get_aio_context(blk); BlockStats *s; char *qdev; @@ -619,6 +619,7 @@ BlockStatsList *qmp_query_blockstats(bool has_query_nodes, bdrv_query_blk_stats(s->stats, blk); aio_context_release(ctx); + info = g_malloc0(sizeof(*info)); info->value = s; *p_next = info; p_next = &info->next; |