Signed-off-by: Marc-André Lureau <marcandre.lur...@redhat.com> --- block/nfs.c | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-)
diff --git a/block/nfs.c b/block/nfs.c index b1718d125a4..93d719551d2 100644 --- a/block/nfs.c +++ b/block/nfs.c @@ -77,34 +77,34 @@ typedef struct NFSRPC { static int nfs_parse_uri(const char *filename, QDict *options, Error **errp) { - URI *uri = NULL; - QueryParams *qp = NULL; - int ret = -EINVAL, i; + g_autoptr(URI) uri = NULL; + g_autoptr(QueryParams) qp = NULL; + int i; uri = uri_parse(filename); if (!uri) { error_setg(errp, "Invalid URI specified"); - goto out; + return -EINVAL; } if (g_strcmp0(uri->scheme, "nfs") != 0) { error_setg(errp, "URI scheme must be 'nfs'"); - goto out; + return -EINVAL; } if (!uri->server) { error_setg(errp, "missing hostname in URI"); - goto out; + return -EINVAL; } if (!uri->path) { error_setg(errp, "missing file path in URI"); - goto out; + return -EINVAL; } qp = query_params_parse(uri->query); if (!qp) { error_setg(errp, "could not parse query parameters"); - goto out; + return -EINVAL; } qdict_put_str(options, "server.host", uri->server); @@ -116,12 +116,12 @@ static int nfs_parse_uri(const char *filename, QDict *options, Error **errp) if (!qp->p[i].value) { error_setg(errp, "Value for NFS parameter expected: %s", qp->p[i].name); - goto out; + return -EINVAL; } if (parse_uint_full(qp->p[i].value, &val, 0)) { error_setg(errp, "Illegal value for NFS parameter: %s", qp->p[i].name); - goto out; + return -EINVAL; } if (!strcmp(qp->p[i].name, "uid")) { qdict_put_str(options, "user", qp->p[i].value); @@ -138,18 +138,10 @@ static int nfs_parse_uri(const char *filename, QDict *options, Error **errp) } else { error_setg(errp, "Unknown NFS parameter name: %s", qp->p[i].name); - goto out; + return -EINVAL; } } - ret = 0; -out: - if (qp) { - query_params_free(qp); - } - if (uri) { - uri_free(uri); - } - return ret; + return 0; } static bool nfs_has_filename_options_conflict(QDict *options, Error **errp) -- 2.27.0.221.ga08a83db2b