nfs: Fix leak of opts in nfs_file_open
Signed-off-by: Fam Zheng <famz@redhat.com> Reviewed-by: Benoît Canet <benoit.canet@nodalink.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
a2f468e48f
commit
810f4f86b7
10
block/nfs.c
10
block/nfs.c
@ -393,16 +393,20 @@ static int nfs_file_open(BlockDriverState *bs, QDict *options, int flags,
|
|||||||
qemu_opts_absorb_qdict(opts, options, &local_err);
|
qemu_opts_absorb_qdict(opts, options, &local_err);
|
||||||
if (local_err) {
|
if (local_err) {
|
||||||
error_propagate(errp, local_err);
|
error_propagate(errp, local_err);
|
||||||
return -EINVAL;
|
ret = -EINVAL;
|
||||||
|
goto out;
|
||||||
}
|
}
|
||||||
ret = nfs_client_open(client, qemu_opt_get(opts, "filename"),
|
ret = nfs_client_open(client, qemu_opt_get(opts, "filename"),
|
||||||
(flags & BDRV_O_RDWR) ? O_RDWR : O_RDONLY,
|
(flags & BDRV_O_RDWR) ? O_RDWR : O_RDONLY,
|
||||||
errp);
|
errp);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
return ret;
|
goto out;
|
||||||
}
|
}
|
||||||
bs->total_sectors = ret;
|
bs->total_sectors = ret;
|
||||||
return 0;
|
ret = 0;
|
||||||
|
out:
|
||||||
|
qemu_opts_del(opts);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int nfs_file_create(const char *url, QemuOpts *opts, Error **errp)
|
static int nfs_file_create(const char *url, QemuOpts *opts, Error **errp)
|
||||||
|
Loading…
Reference in New Issue
Block a user