block: Fix leak in bdrv_create_file_fallback()
@options is leaked by the first two return statements in this function. Note that blk_new_open() takes the reference to @options even on failure, so all we need to do to fix the leak is to move the QDict allocation down to where we actually need it. Reported-by: Coverity (CID 1419884) Fixes: fd17146cd93d1704cd96d7c2757b325fc7aac6fd ("block: Generic file creation fallback") Signed-off-by: Max Reitz <mreitz@redhat.com> Message-Id: <20200225155618.133412-1-mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
81311255f2
commit
eeea1faa09
3
block.c
3
block.c
@ -600,7 +600,7 @@ static int bdrv_create_file_fallback(const char *filename, BlockDriver *drv,
|
|||||||
QemuOpts *opts, Error **errp)
|
QemuOpts *opts, Error **errp)
|
||||||
{
|
{
|
||||||
BlockBackend *blk;
|
BlockBackend *blk;
|
||||||
QDict *options = qdict_new();
|
QDict *options;
|
||||||
int64_t size = 0;
|
int64_t size = 0;
|
||||||
char *buf = NULL;
|
char *buf = NULL;
|
||||||
PreallocMode prealloc;
|
PreallocMode prealloc;
|
||||||
@ -623,6 +623,7 @@ static int bdrv_create_file_fallback(const char *filename, BlockDriver *drv,
|
|||||||
return -ENOTSUP;
|
return -ENOTSUP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
options = qdict_new();
|
||||||
qdict_put_str(options, "driver", drv->format_name);
|
qdict_put_str(options, "driver", drv->format_name);
|
||||||
|
|
||||||
blk = blk_new_open(filename, NULL, options,
|
blk = blk_new_open(filename, NULL, options,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user