diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index 0e3ad459a3..c4831db6cd 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -692,7 +692,7 @@ remoteConnectSupportsFeatureUnlocked(virConnectPtr conn, int feature) { remote_connect_supports_feature_args args = { feature }; - remote_connect_supports_feature_ret ret = { 0 }; + g_auto(remote_connect_supports_feature_ret) ret = { 0 }; int rc; rc = call(conn, priv, 0, REMOTE_PROC_CONNECT_SUPPORTS_FEATURE, @@ -1393,7 +1393,7 @@ remoteConnectClose(virConnectPtr conn) static const char * remoteConnectGetType(virConnectPtr conn) { - remote_connect_get_type_ret ret = {0}; + g_auto(remote_connect_get_type_ret) ret = {0}; struct private_data *priv = conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -1414,7 +1414,7 @@ remoteConnectGetType(virConnectPtr conn) static int remoteConnectIsSecure(virConnectPtr conn) { struct private_data *priv = conn->privateData; - remote_connect_is_secure_ret ret = {0}; + g_auto(remote_connect_is_secure_ret) ret = {0}; VIR_LOCK_GUARD lock = remoteDriverLock(priv); if (call(conn, priv, 0, REMOTE_PROC_CONNECT_IS_SECURE, @@ -1437,7 +1437,7 @@ static int remoteConnectIsEncrypted(virConnectPtr conn) { bool encrypted; struct private_data *priv = conn->privateData; - remote_connect_is_secure_ret ret = {0}; + g_auto(remote_connect_is_secure_ret) ret = {0}; VIR_LOCK_GUARD lock = remoteDriverLock(priv); if (call(conn, priv, 0, REMOTE_PROC_CONNECT_IS_SECURE, @@ -1464,9 +1464,8 @@ remoteNodeGetCPUStats(virConnectPtr conn, virNodeCPUStatsPtr params, int *nparams, unsigned int flags) { - int rv = -1; remote_node_get_cpu_stats_args args = {0}; - remote_node_get_cpu_stats_ret ret = {0}; + g_auto(remote_node_get_cpu_stats_ret) ret = {0}; size_t i; struct private_data *priv = conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -1487,15 +1486,14 @@ remoteNodeGetCPUStats(virConnectPtr conn, ret.params.params_len > *nparams) { virReportError(VIR_ERR_RPC, "%s", _("remoteNodeGetCPUStats: returned number of stats exceeds limit")); - goto cleanup; + return -1; } /* Handle the case when the caller does not know the number of stats * and is asking for the number of stats supported */ if (*nparams == 0) { *nparams = ret.nparams; - rv = 0; - goto cleanup; + return 0; } *nparams = ret.params.params_len; @@ -1506,16 +1504,12 @@ remoteNodeGetCPUStats(virConnectPtr conn, virReportError(VIR_ERR_INTERNAL_ERROR, _("Stats %1$s too big for destination"), ret.params.params_val[i].field); - goto cleanup; + return -1; } params[i].value = ret.params.params_val[i].value; } - rv = 0; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_node_get_cpu_stats_ret, (char *) &ret); - return rv; + return 0; } static int @@ -1525,9 +1519,8 @@ remoteNodeGetMemoryStats(virConnectPtr conn, int *nparams, unsigned int flags) { - int rv = -1; remote_node_get_memory_stats_args args = {0}; - remote_node_get_memory_stats_ret ret = {0}; + g_auto(remote_node_get_memory_stats_ret) ret = {0}; size_t i; struct private_data *priv = conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -1546,15 +1539,14 @@ remoteNodeGetMemoryStats(virConnectPtr conn, ret.params.params_len > *nparams) { virReportError(VIR_ERR_RPC, "%s", _("remoteNodeGetMemoryStats: returned number of stats exceeds limit")); - goto cleanup; + return -1; } /* Handle the case when the caller does not know the number of stats * and is asking for the number of stats supported */ if (*nparams == 0) { *nparams = ret.nparams; - rv = 0; - goto cleanup; + return 0; } *nparams = ret.params.params_len; @@ -1565,16 +1557,12 @@ remoteNodeGetMemoryStats(virConnectPtr conn, virReportError(VIR_ERR_INTERNAL_ERROR, _("Stats %1$s too big for destination"), ret.params.params_val[i].field); - goto cleanup; + return -1; } params[i].value = ret.params.params_val[i].value; } - rv = 0; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_node_get_memory_stats_ret, (char *) &ret); - return rv; + return 0; } static int @@ -1584,7 +1572,7 @@ remoteNodeGetCellsFreeMemory(virConnectPtr conn, int maxCells) { remote_node_get_cells_free_memory_args args = {0}; - remote_node_get_cells_free_memory_ret ret = {0}; + g_auto(remote_node_get_cells_free_memory_ret) ret = {0}; size_t i; struct private_data *priv = conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -1607,18 +1595,15 @@ remoteNodeGetCellsFreeMemory(virConnectPtr conn, for (i = 0; i < ret.cells.cells_len; i++) freeMems[i] = ret.cells.cells_val[i]; - xdr_free((xdrproc_t) xdr_remote_node_get_cells_free_memory_ret, (char *) &ret); - return ret.cells.cells_len; } static int remoteConnectListDomains(virConnectPtr conn, int *ids, int maxids) { - int rv = -1; size_t i; remote_connect_list_domains_args args = {0}; - remote_connect_list_domains_ret ret = {0}; + g_auto(remote_connect_list_domains_ret) ret = {0}; struct private_data *priv = conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -1639,17 +1624,13 @@ remoteConnectListDomains(virConnectPtr conn, int *ids, int maxids) virReportError(VIR_ERR_RPC, _("Too many domains '%1$d' for limit '%2$d'"), ret.ids.ids_len, maxids); - goto cleanup; + return -1; } for (i = 0; i < ret.ids.ids_len; ++i) ids[i] = ret.ids.ids_val[i]; - rv = ret.ids.ids_len; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_connect_list_domains_ret, (char *) &ret); - return rv; + return ret.ids.ids_len; } static int @@ -1689,9 +1670,8 @@ remoteDomainBlockStatsFlags(virDomainPtr domain, int *nparams, unsigned int flags) { - int rv = -1; remote_domain_block_stats_flags_args args = {0}; - remote_domain_block_stats_flags_ret ret = {0}; + g_auto(remote_domain_block_stats_flags_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -1710,7 +1690,7 @@ remoteDomainBlockStatsFlags(virDomainPtr domain, ret.params.params_len > *nparams) { virReportError(VIR_ERR_RPC, "%s", _("remoteDomainBlockStatsFlags: returned number of stats exceeds limit")); - goto cleanup; + return -1; } /* Handle the case when the caller does not know the number of stats @@ -1718,8 +1698,7 @@ remoteDomainBlockStatsFlags(virDomainPtr domain, */ if (*nparams == 0) { *nparams = ret.nparams; - rv = 0; - goto cleanup; + return 0; } *nparams = ret.params.params_len; @@ -1730,14 +1709,9 @@ remoteDomainBlockStatsFlags(virDomainPtr domain, REMOTE_DOMAIN_BLOCK_STATS_PARAMETERS_MAX, ¶ms, nparams) < 0) - goto cleanup; + return -1; - rv = 0; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_domain_block_stats_flags_ret, - (char *) &ret); - return rv; + return 0; } static int @@ -1745,9 +1719,8 @@ remoteDomainGetMemoryParameters(virDomainPtr domain, virTypedParameterPtr params, int *nparams, unsigned int flags) { - int rv = -1; remote_domain_get_memory_parameters_args args = {0}; - remote_domain_get_memory_parameters_ret ret = {0}; + g_auto(remote_domain_get_memory_parameters_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -1765,8 +1738,7 @@ remoteDomainGetMemoryParameters(virDomainPtr domain, */ if (*nparams == 0) { *nparams = ret.nparams; - rv = 0; - goto cleanup; + return 0; } if (virTypedParamsDeserialize((struct _virTypedParameterRemote *) ret.params.params_val, @@ -1774,14 +1746,9 @@ remoteDomainGetMemoryParameters(virDomainPtr domain, REMOTE_DOMAIN_MEMORY_PARAMETERS_MAX, ¶ms, nparams) < 0) - goto cleanup; + return -1; - rv = 0; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_domain_get_memory_parameters_ret, - (char *) &ret); - return rv; + return 0; } static int @@ -1789,9 +1756,8 @@ remoteDomainGetNumaParameters(virDomainPtr domain, virTypedParameterPtr params, int *nparams, unsigned int flags) { - int rv = -1; remote_domain_get_numa_parameters_args args = {0}; - remote_domain_get_numa_parameters_ret ret = {0}; + g_auto(remote_domain_get_numa_parameters_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -1809,8 +1775,7 @@ remoteDomainGetNumaParameters(virDomainPtr domain, */ if (*nparams == 0) { *nparams = ret.nparams; - rv = 0; - goto cleanup; + return 0; } if (virTypedParamsDeserialize((struct _virTypedParameterRemote *) ret.params.params_val, @@ -1818,14 +1783,9 @@ remoteDomainGetNumaParameters(virDomainPtr domain, REMOTE_DOMAIN_NUMA_PARAMETERS_MAX, ¶ms, nparams) < 0) - goto cleanup; + return -1; - rv = 0; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_domain_get_numa_parameters_ret, - (char *) &ret); - return rv; + return 0; } static int @@ -1834,9 +1794,8 @@ remoteDomainGetLaunchSecurityInfo(virDomainPtr domain, int *nparams, unsigned int flags) { - int rv = -1; remote_domain_get_launch_security_info_args args = {0}; - remote_domain_get_launch_security_info_ret ret = {0}; + g_auto(remote_domain_get_launch_security_info_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -1853,14 +1812,9 @@ remoteDomainGetLaunchSecurityInfo(virDomainPtr domain, REMOTE_DOMAIN_LAUNCH_SECURITY_INFO_PARAMS_MAX, params, nparams) < 0) - goto cleanup; + return -1; - rv = 0; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_domain_get_launch_security_info_ret, - (char *) &ret); - return rv; + return 0; } static int @@ -1869,9 +1823,8 @@ remoteDomainGetPerfEvents(virDomainPtr domain, int *nparams, unsigned int flags) { - int rv = -1; remote_domain_get_perf_events_args args = {0}; - remote_domain_get_perf_events_ret ret = {0}; + g_auto(remote_domain_get_perf_events_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -1888,14 +1841,9 @@ remoteDomainGetPerfEvents(virDomainPtr domain, REMOTE_DOMAIN_PERF_EVENTS_MAX, params, nparams) < 0) - goto cleanup; + return -1; - rv = 0; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_domain_get_perf_events_ret, - (char *) &ret); - return rv; + return 0; } static int @@ -1903,9 +1851,8 @@ remoteDomainGetBlkioParameters(virDomainPtr domain, virTypedParameterPtr params, int *nparams, unsigned int flags) { - int rv = -1; remote_domain_get_blkio_parameters_args args = {0}; - remote_domain_get_blkio_parameters_ret ret = {0}; + g_auto(remote_domain_get_blkio_parameters_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -1923,8 +1870,7 @@ remoteDomainGetBlkioParameters(virDomainPtr domain, */ if (*nparams == 0) { *nparams = ret.nparams; - rv = 0; - goto cleanup; + return 0; } if (virTypedParamsDeserialize((struct _virTypedParameterRemote *) ret.params.params_val, @@ -1932,14 +1878,9 @@ remoteDomainGetBlkioParameters(virDomainPtr domain, REMOTE_DOMAIN_BLKIO_PARAMETERS_MAX, ¶ms, nparams) < 0) - goto cleanup; + return -1; - rv = 0; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_domain_get_blkio_parameters_ret, - (char *) &ret); - return rv; + return 0; } static int @@ -1949,10 +1890,9 @@ remoteDomainGetVcpuPinInfo(virDomainPtr domain, int maplen, unsigned int flags) { - int rv = -1; size_t i; remote_domain_get_vcpu_pin_info_args args = {0}; - remote_domain_get_vcpu_pin_info_ret ret = {0}; + g_auto(remote_domain_get_vcpu_pin_info_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -1987,14 +1927,14 @@ remoteDomainGetVcpuPinInfo(virDomainPtr domain, virReportError(VIR_ERR_RPC, _("host reports too many vCPUs: %1$d > %2$d"), ret.num, ncpumaps); - goto cleanup; + return -1; } if (ret.cpumaps.cpumaps_len > ncpumaps * maplen) { virReportError(VIR_ERR_RPC, _("host reports map buffer length exceeds maximum: %1$d > %2$d"), ret.cpumaps.cpumaps_len, ncpumaps * maplen); - goto cleanup; + return -1; } memset(cpumaps, 0, ncpumaps * maplen); @@ -2002,11 +1942,7 @@ remoteDomainGetVcpuPinInfo(virDomainPtr domain, for (i = 0; i < ret.cpumaps.cpumaps_len; ++i) cpumaps[i] = ret.cpumaps.cpumaps_val[i]; - rv = ret.num; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_domain_get_vcpu_pin_info_ret, (char *) &ret); - return rv; + return ret.num; } static int @@ -2047,10 +1983,9 @@ remoteDomainGetEmulatorPinInfo(virDomainPtr domain, int maplen, unsigned int flags) { - int rv = -1; size_t i; remote_domain_get_emulator_pin_info_args args = {0}; - remote_domain_get_emulator_pin_info_ret ret = {0}; + g_auto(remote_domain_get_emulator_pin_info_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -2077,7 +2012,7 @@ remoteDomainGetEmulatorPinInfo(virDomainPtr domain, virReportError(VIR_ERR_RPC, _("host reports map buffer length exceeds maximum: %1$d > %2$d"), ret.cpumaps.cpumaps_len, maplen); - goto cleanup; + return -1; } memset(cpumaps, 0, maplen); @@ -2085,12 +2020,7 @@ remoteDomainGetEmulatorPinInfo(virDomainPtr domain, for (i = 0; i < ret.cpumaps.cpumaps_len; ++i) cpumaps[i] = ret.cpumaps.cpumaps_val[i]; - rv = ret.ret; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_domain_get_emulator_pin_info_ret, - (char *) &ret); - return rv; + return ret.ret; } static int @@ -2100,10 +2030,9 @@ remoteDomainGetVcpus(virDomainPtr domain, unsigned char *cpumaps, int maplen) { - int rv = -1; size_t i; remote_domain_get_vcpus_args args = {0}; - remote_domain_get_vcpus_ret ret = {0}; + g_auto(remote_domain_get_vcpus_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -2134,13 +2063,13 @@ remoteDomainGetVcpus(virDomainPtr domain, virReportError(VIR_ERR_RPC, _("host reports too many vCPUs: %1$d > %2$d"), ret.info.info_len, maxinfo); - goto cleanup; + return -1; } if (ret.cpumaps.cpumaps_len > maxinfo * maplen) { virReportError(VIR_ERR_RPC, _("host reports map buffer length exceeds maximum: %1$d > %2$d"), ret.cpumaps.cpumaps_len, maxinfo * maplen); - goto cleanup; + return -1; } memset(info, 0, sizeof(*info) * maxinfo); @@ -2156,11 +2085,7 @@ remoteDomainGetVcpus(virDomainPtr domain, for (i = 0; i < ret.cpumaps.cpumaps_len; ++i) cpumaps[i] = ret.cpumaps.cpumaps_val[i]; - rv = ret.info.info_len; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_domain_get_vcpus_ret, (char *) &ret); - return rv; + return ret.info.info_len; } static int @@ -2168,11 +2093,10 @@ remoteDomainGetIOThreadInfo(virDomainPtr dom, virDomainIOThreadInfoPtr **info, unsigned int flags) { - int rv = -1; size_t i; struct private_data *priv = dom->conn->privateData; remote_domain_get_iothread_info_args args = {0}; - remote_domain_get_iothread_info_ret ret = {0}; + g_auto(remote_domain_get_iothread_info_ret) ret = {0}; remote_domain_iothread_info *src; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -2191,7 +2115,7 @@ remoteDomainGetIOThreadInfo(virDomainPtr dom, virReportError(VIR_ERR_INTERNAL_ERROR, _("Too many IOThreads in info: %1$d for limit %2$d"), ret.info.info_len, REMOTE_IOTHREAD_INFO_MAX); - goto cleanup; + return -1; } if (info) { @@ -2199,8 +2123,7 @@ remoteDomainGetIOThreadInfo(virDomainPtr dom, if (!ret.info.info_len) { *info = NULL; - rv = ret.ret; - goto cleanup; + return ret.ret; } info_ret = g_new0(virDomainIOThreadInfoPtr, ret.info.info_len); @@ -2219,21 +2142,15 @@ remoteDomainGetIOThreadInfo(virDomainPtr dom, *info = info_ret; } - rv = ret.ret; - - cleanup: - xdr_free((xdrproc_t)xdr_remote_domain_get_iothread_info_ret, - (char *) &ret); - return rv; + return ret.ret; } static int remoteDomainGetSecurityLabel(virDomainPtr domain, virSecurityLabelPtr seclabel) { remote_domain_get_security_label_args args = {0}; - remote_domain_get_security_label_ret ret = {0}; + g_auto(remote_domain_get_security_label_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; - int rv = -1; VIR_LOCK_GUARD lock = remoteDriverLock(priv); make_nonnull_domain(&args.dom, domain); @@ -2248,26 +2165,21 @@ remoteDomainGetSecurityLabel(virDomainPtr domain, virSecurityLabelPtr seclabel) if (virStrcpyStatic(seclabel->label, ret.label.label_val) < 0) { virReportError(VIR_ERR_RPC, _("security label exceeds maximum: %1$zu"), sizeof(seclabel->label) - 1); - goto cleanup; + return -1; } seclabel->enforcing = ret.enforcing; } - rv = 0; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_domain_get_security_label_ret, (char *)&ret); - return rv; + return 0; } static int remoteDomainGetSecurityLabelList(virDomainPtr domain, virSecurityLabelPtr* seclabels) { remote_domain_get_security_label_list_args args = {0}; - remote_domain_get_security_label_list_ret ret = {0}; + g_auto(remote_domain_get_security_label_list_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; size_t i; - int rv = -1; VIR_LOCK_GUARD lock = remoteDriverLock(priv); make_nonnull_domain(&args.dom, domain); @@ -2286,16 +2198,12 @@ remoteDomainGetSecurityLabelList(virDomainPtr domain, virSecurityLabelPtr* secla virReportError(VIR_ERR_RPC, _("security label exceeds maximum: %1$zd"), sizeof((*seclabels)->label) - 1); VIR_FREE(*seclabels); - goto cleanup; + return -1; } (*seclabels)[i].enforcing = cur->enforcing; } } - rv = ret.ret; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_domain_get_security_label_list_ret, (char *)&ret); - return rv; + return ret.ret; } static int @@ -2305,7 +2213,7 @@ remoteDomainGetState(virDomainPtr domain, unsigned int flags) { remote_domain_get_state_args args = {0}; - remote_domain_get_state_ret ret = {0}; + g_auto(remote_domain_get_state_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -2327,9 +2235,8 @@ remoteDomainGetState(virDomainPtr domain, static int remoteNodeGetSecurityModel(virConnectPtr conn, virSecurityModelPtr secmodel) { - remote_node_get_security_model_ret ret = {0}; + g_auto(remote_node_get_security_model_ret) ret = {0}; struct private_data *priv = conn->privateData; - int rv = -1; VIR_LOCK_GUARD lock = remoteDriverLock(priv); memset(secmodel, 0, sizeof(*secmodel)); @@ -2343,7 +2250,7 @@ remoteNodeGetSecurityModel(virConnectPtr conn, virSecurityModelPtr secmodel) if (virStrcpyStatic(secmodel->model, ret.model.model_val) < 0) { virReportError(VIR_ERR_RPC, _("security model exceeds maximum: %1$zu"), sizeof(secmodel->model) - 1); - goto cleanup; + return -1; } } @@ -2351,15 +2258,11 @@ remoteNodeGetSecurityModel(virConnectPtr conn, virSecurityModelPtr secmodel) if (virStrcpyStatic(secmodel->doi, ret.doi.doi_val) < 0) { virReportError(VIR_ERR_RPC, _("security doi exceeds maximum: %1$zu"), sizeof(secmodel->doi) - 1); - goto cleanup; + return -1; } } - rv = 0; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_node_get_security_model_ret, (char *)&ret); - return rv; + return 0; } static int @@ -2370,7 +2273,7 @@ remoteDomainMigratePrepare(virConnectPtr dconn, unsigned long resource) { remote_domain_migrate_prepare_args args = {0}; - remote_domain_migrate_prepare_ret ret = {0}; + g_auto(remote_domain_migrate_prepare_ret) ret = {0}; struct private_data *priv = dconn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -2385,11 +2288,12 @@ remoteDomainMigratePrepare(virConnectPtr dconn, return -1; if (ret.cookie.cookie_len > 0) { - *cookie = ret.cookie.cookie_val; /* Caller frees. */ + *cookie = g_steal_pointer(&ret.cookie.cookie_val); /* Caller frees. */ *cookielen = ret.cookie.cookie_len; + ret.cookie.cookie_len = 0; } if (ret.uri_out) - *uri_out = *ret.uri_out; /* Caller frees. */ + *uri_out = g_steal_pointer(ret.uri_out); /* Caller frees. */ VIR_FREE(ret.uri_out); return 0; @@ -2403,9 +2307,8 @@ remoteDomainMigratePrepare2(virConnectPtr dconn, unsigned long resource, const char *dom_xml) { - int rv = -1; remote_domain_migrate_prepare2_args args = {0}; - remote_domain_migrate_prepare2_ret ret = {0}; + g_auto(remote_domain_migrate_prepare2_ret) ret = {0}; struct private_data *priv = dconn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -2424,31 +2327,21 @@ remoteDomainMigratePrepare2(virConnectPtr dconn, if (!cookie || !cookielen) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("caller ignores cookie or cookielen")); - goto error; + return -1; } - *cookie = ret.cookie.cookie_val; /* Caller frees. */ + *cookie = g_steal_pointer(&ret.cookie.cookie_val); /* Caller frees. */ *cookielen = ret.cookie.cookie_len; } if (ret.uri_out) { if (!uri_out) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("caller ignores uri_out")); - goto error; + return -1; } - *uri_out = *ret.uri_out; /* Caller frees. */ + *uri_out = g_steal_pointer(ret.uri_out); /* Caller frees. */ } - rv = 0; - - done: - VIR_FREE(ret.uri_out); - return rv; - error: - if (ret.cookie.cookie_len) - VIR_FREE(ret.cookie.cookie_val); - if (ret.uri_out) - VIR_FREE(*ret.uri_out); - goto done; + return 0; } static int @@ -2456,7 +2349,7 @@ remoteDomainCreate(virDomainPtr domain) { remote_domain_create_args args = {0}; remote_domain_lookup_by_uuid_args args2 = {0}; - remote_domain_lookup_by_uuid_ret ret2 = {0}; + g_auto(remote_domain_lookup_by_uuid_ret) ret2 = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -2478,7 +2371,6 @@ remoteDomainCreate(virDomainPtr domain) return -1; domain->id = ret2.dom.id; - xdr_free((xdrproc_t) &xdr_remote_domain_lookup_by_uuid_ret, (char *) &ret2); return 0; } @@ -2487,7 +2379,7 @@ static char * remoteDomainGetSchedulerType(virDomainPtr domain, int *nparams) { remote_domain_get_scheduler_type_args args = {0}; - remote_domain_get_scheduler_type_ret ret = {0}; + g_auto(remote_domain_get_scheduler_type_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -2501,7 +2393,7 @@ remoteDomainGetSchedulerType(virDomainPtr domain, int *nparams) if (nparams) *nparams = ret.nparams; /* Caller frees this. */ - return ret.type; + return g_steal_pointer(&ret.type); } static int @@ -2510,9 +2402,8 @@ remoteDomainMemoryStats(virDomainPtr domain, unsigned int nr_stats, unsigned int flags) { - int rv = -1; remote_domain_memory_stats_args args = {0}; - remote_domain_memory_stats_ret ret = {0}; + g_auto(remote_domain_memory_stats_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; size_t i; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -2538,10 +2429,7 @@ remoteDomainMemoryStats(virDomainPtr domain, stats[i].tag = ret.stats.stats_val[i].tag; stats[i].val = ret.stats.stats_val[i].val; } - rv = ret.stats.stats_len; - xdr_free((xdrproc_t) xdr_remote_domain_memory_stats_ret, (char *) &ret); - - return rv; + return ret.stats.stats_len; } static int @@ -2552,9 +2440,8 @@ remoteDomainBlockPeek(virDomainPtr domain, void *buffer, unsigned int flags) { - int rv = -1; remote_domain_block_peek_args args = {0}; - remote_domain_block_peek_ret ret = {0}; + g_auto(remote_domain_block_peek_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -2581,15 +2468,11 @@ remoteDomainBlockPeek(virDomainPtr domain, if (ret.buffer.buffer_len != size) { virReportError(VIR_ERR_RPC, "%s", _("returned buffer is not same size as requested")); - goto cleanup; + return -1; } memcpy(buffer, ret.buffer.buffer_val, size); - rv = 0; - - cleanup: - VIR_FREE(ret.buffer.buffer_val); - return rv; + return 0; } static int @@ -2599,9 +2482,8 @@ remoteDomainMemoryPeek(virDomainPtr domain, void *buffer, unsigned int flags) { - int rv = -1; remote_domain_memory_peek_args args = {0}; - remote_domain_memory_peek_ret ret = {0}; + g_auto(remote_domain_memory_peek_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -2627,16 +2509,11 @@ remoteDomainMemoryPeek(virDomainPtr domain, if (ret.buffer.buffer_len != size) { virReportError(VIR_ERR_RPC, "%s", _("returned buffer is not same size as requested")); - goto cleanup; + return -1; } memcpy(buffer, ret.buffer.buffer_val, size); - rv = 0; - - cleanup: - VIR_FREE(ret.buffer.buffer_val); - - return rv; + return 0; } static int remoteDomainGetBlockJobInfo(virDomainPtr domain, @@ -2645,7 +2522,7 @@ static int remoteDomainGetBlockJobInfo(virDomainPtr domain, unsigned int flags) { remote_domain_get_block_job_info_args args = {0}; - remote_domain_get_block_job_info_ret ret = {0}; + g_auto(remote_domain_get_block_job_info_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -2677,9 +2554,8 @@ static int remoteDomainGetBlockIoTune(virDomainPtr domain, int *nparams, unsigned int flags) { - int rv = -1; remote_domain_get_block_io_tune_args args = {0}; - remote_domain_get_block_io_tune_ret ret = {0}; + g_auto(remote_domain_get_block_io_tune_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -2701,8 +2577,7 @@ static int remoteDomainGetBlockIoTune(virDomainPtr domain, */ if (*nparams == 0) { *nparams = ret.nparams; - rv = 0; - goto cleanup; + return -1; } if (virTypedParamsDeserialize((struct _virTypedParameterRemote *) ret.params.params_val, @@ -2710,14 +2585,9 @@ static int remoteDomainGetBlockIoTune(virDomainPtr domain, REMOTE_DOMAIN_BLOCK_IO_TUNE_PARAMETERS_MAX, ¶ms, nparams) < 0) - goto cleanup; + return -1; - rv = 0; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_domain_get_block_io_tune_ret, - (char *) &ret); - return rv; + return 0; } static int remoteDomainGetCPUStats(virDomainPtr domain, @@ -2729,8 +2599,7 @@ static int remoteDomainGetCPUStats(virDomainPtr domain, { struct private_data *priv = domain->conn->privateData; remote_domain_get_cpu_stats_args args = {0}; - remote_domain_get_cpu_stats_ret ret = {0}; - int rv = -1; + g_auto(remote_domain_get_cpu_stats_ret) ret = {0}; int cpu; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -2767,15 +2636,14 @@ static int remoteDomainGetCPUStats(virDomainPtr domain, virReportError(VIR_ERR_RPC, "%s", _("remoteDomainGetCPUStats: returned number of stats exceeds limit")); memset(params, 0, sizeof(*params) * nparams * ncpus); - goto cleanup; + return -1; } /* Handle the case when the caller does not know the number of stats * and is asking for the number of stats supported */ if (nparams == 0) { - rv = ret.nparams; - goto cleanup; + return ret.nparams; } /* The remote side did not send back any zero entries, so we have @@ -2792,18 +2660,13 @@ static int remoteDomainGetCPUStats(virDomainPtr domain, if (virTypedParamsDeserialize((struct _virTypedParameterRemote *) stride, ret.nparams, REMOTE_NODE_CPU_STATS_MAX, - &cpu_params, &tmp) < 0) - goto cleanup; + &cpu_params, &tmp) < 0) { + virTypedParamsClear(params, nparams * ncpus); + return -1; + } } - rv = ret.nparams; - cleanup: - if (rv < 0) - virTypedParamsClear(params, nparams * ncpus); - - xdr_free((xdrproc_t) xdr_remote_domain_get_cpu_stats_ret, - (char *) &ret); - return rv; + return ret.nparams; } @@ -2817,7 +2680,7 @@ remoteConnectNetworkEventRegisterAny(virConnectPtr conn, { struct private_data *priv = conn->privateData; remote_connect_network_event_register_any_args args = {0}; - remote_connect_network_event_register_any_ret ret = {0}; + g_auto(remote_connect_network_event_register_any_ret) ret = {0}; int callbackID; int count; remote_nonnull_network network; @@ -2898,7 +2761,7 @@ remoteConnectStoragePoolEventRegisterAny(virConnectPtr conn, { struct private_data *priv = conn->privateData; remote_connect_storage_pool_event_register_any_args args = {0}; - remote_connect_storage_pool_event_register_any_ret ret = {0}; + g_auto(remote_connect_storage_pool_event_register_any_ret) ret = {0}; int callbackID; int count; remote_nonnull_storage_pool storage_pool; @@ -2981,7 +2844,7 @@ remoteConnectNodeDeviceEventRegisterAny(virConnectPtr conn, { struct private_data *priv = conn->privateData; remote_connect_node_device_event_register_any_args args = {0}; - remote_connect_node_device_event_register_any_ret ret = {0}; + g_auto(remote_connect_node_device_event_register_any_ret) ret = {0}; int callbackID; int count; remote_nonnull_node_device node_device; @@ -3065,7 +2928,7 @@ remoteConnectSecretEventRegisterAny(virConnectPtr conn, { struct private_data *priv = conn->privateData; remote_connect_secret_event_register_any_args args = {0}; - remote_connect_secret_event_register_any_ret ret = {0}; + g_auto(remote_connect_secret_event_register_any_ret) ret = {0}; int callbackID; int count; remote_nonnull_secret sec; @@ -3150,7 +3013,7 @@ remoteConnectDomainQemuMonitorEventRegister(virConnectPtr conn, { struct private_data *priv = conn->privateData; qemu_connect_domain_monitor_event_register_args args; - qemu_connect_domain_monitor_event_register_ret ret = {0}; + g_auto(qemu_connect_domain_monitor_event_register_ret) ret = {0}; int callbackID; int count; remote_nonnull_domain domain; @@ -3230,9 +3093,8 @@ remoteConnectFindStoragePoolSources(virConnectPtr conn, const char *srcSpec, unsigned int flags) { - char *rv = NULL; remote_connect_find_storage_pool_sources_args args = {0}; - remote_connect_find_storage_pool_sources_ret ret = {0}; + g_auto(remote_connect_find_storage_pool_sources_ret) ret = {0}; struct private_data *priv = conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -3245,10 +3107,7 @@ remoteConnectFindStoragePoolSources(virConnectPtr conn, (xdrproc_t) xdr_remote_connect_find_storage_pool_sources_ret, (char *) &ret) == -1) return NULL; - rv = g_steal_pointer(&ret.xml); /* To stop xdr_free free'ing it */ - - xdr_free((xdrproc_t) xdr_remote_connect_find_storage_pool_sources_ret, (char *) &ret); - return rv; + return g_steal_pointer(&ret.xml); } /*----------------------------------------------------------------------*/ @@ -3335,7 +3194,7 @@ remoteAuthenticate(virConnectPtr conn, struct private_data *priv, virConnectAuthPtr auth G_GNUC_UNUSED, const char *authtype) { - struct remote_auth_list_ret ret = {0}; + g_auto(remote_auth_list_ret) ret = {0}; int err, type = REMOTE_AUTH_NONE; err = call(conn, priv, 0, @@ -3959,7 +3818,7 @@ static int remoteAuthPolkit(virConnectPtr conn, struct private_data *priv, virConnectAuthPtr auth G_GNUC_UNUSED) { - remote_auth_polkit_ret ret = {0}; + g_auto(remote_auth_polkit_ret) ret = {0}; VIR_DEBUG("Client initialize PolicyKit authentication"); if (call(conn, priv, 0, REMOTE_PROC_AUTH_POLKIT, @@ -3998,7 +3857,7 @@ remoteConnectDomainEventRegister(virConnectPtr conn, /* Tell the server when we are the first callback registering */ if (priv->serverEventFilter) { remote_connect_domain_event_callback_register_any_args args = {0}; - remote_connect_domain_event_callback_register_any_ret ret = {0}; + g_auto(remote_connect_domain_event_callback_register_any_ret) ret = {0}; args.eventID = VIR_DOMAIN_EVENT_ID_LIFECYCLE; args.dom = NULL; @@ -5129,7 +4988,7 @@ remoteSecretGetValue(virSecretPtr secret, size_t *value_size, unsigned int flags) { remote_secret_get_value_args args = {0}; - remote_secret_get_value_ret ret = {0}; + g_auto(remote_secret_get_value_ret) ret = {0}; struct private_data *priv = secret->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -5142,7 +5001,7 @@ remoteSecretGetValue(virSecretPtr secret, size_t *value_size, return NULL; *value_size = ret.value.value_len; - return (unsigned char *) ret.value.value_val; /* Caller frees. */ + return (unsigned char *) g_steal_pointer(&ret.value.value_val); /* Caller frees. */ } @@ -5536,7 +5395,7 @@ remoteConnectDomainEventRegisterAny(virConnectPtr conn, if (count == 1) { if (priv->serverEventFilter) { remote_connect_domain_event_callback_register_any_args args = {0}; - remote_connect_domain_event_callback_register_any_ret ret = {0}; + g_auto(remote_connect_domain_event_callback_register_any_ret) ret = {0}; args.eventID = eventID; if (dom) { @@ -5627,9 +5486,8 @@ static int remoteDomainQemuMonitorCommand(virDomainPtr domain, const char *cmd, char **result, unsigned int flags) { - int rv = -1; qemu_domain_monitor_command_args args; - qemu_domain_monitor_command_ret ret = {0}; + g_auto(qemu_domain_monitor_command_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -5642,13 +5500,9 @@ remoteDomainQemuMonitorCommand(virDomainPtr domain, const char *cmd, (xdrproc_t) xdr_qemu_domain_monitor_command_ret, (char *) &ret) == -1) return -1; - *result = g_strdup(ret.result); + *result = g_steal_pointer(&ret.result); - rv = 0; - - xdr_free((xdrproc_t) xdr_qemu_domain_monitor_command_ret, (char *) &ret); - - return rv; + return 0; } @@ -5663,7 +5517,7 @@ remoteDomainQemuMonitorCommandWithFiles(virDomainPtr domain, unsigned int flags) { qemu_domain_monitor_command_with_files_args args; - qemu_domain_monitor_command_with_files_ret ret = {0}; + g_auto(qemu_domain_monitor_command_with_files_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; size_t rpc_noutfiles = 0; g_autofree int *rpc_outfiles = NULL; @@ -5687,9 +5541,7 @@ remoteDomainQemuMonitorCommandWithFiles(virDomainPtr domain, if (noutfiles) *noutfiles = rpc_noutfiles; - *result = g_strdup(ret.result); - - xdr_free((xdrproc_t) xdr_qemu_domain_monitor_command_with_files_ret, (char *) &ret); + *result = g_steal_pointer(&ret.result); if (rpc_outfiles) { for (i = 0; i < rpc_noutfiles; i++) { @@ -5710,9 +5562,8 @@ remoteDomainMigrateBegin3(virDomainPtr domain, const char *dname, unsigned long resource) { - char *rv = NULL; remote_domain_migrate_begin3_args args = {0}; - remote_domain_migrate_begin3_ret ret = {0}; + g_auto(remote_domain_migrate_begin3_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -5731,20 +5582,14 @@ remoteDomainMigrateBegin3(virDomainPtr domain, if (!cookieout || !cookieoutlen) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("caller ignores cookieout or cookieoutlen")); - goto error; + return NULL; } - *cookieout = ret.cookie_out.cookie_out_val; /* Caller frees. */ + *cookieout = g_steal_pointer(&ret.cookie_out.cookie_out_val); /* Caller frees. */ *cookieoutlen = ret.cookie_out.cookie_out_len; + ret.cookie_out.cookie_out_len = 0; } - rv = ret.xml; /* caller frees */ - - done: - return rv; - - error: - VIR_FREE(ret.cookie_out.cookie_out_val); - goto done; + return g_steal_pointer(&ret.xml); /* caller frees */ } @@ -5761,9 +5606,8 @@ remoteDomainMigratePrepare3(virConnectPtr dconn, unsigned long resource, const char *dom_xml) { - int rv = -1; remote_domain_migrate_prepare3_args args = {0}; - remote_domain_migrate_prepare3_ret ret = {0}; + g_auto(remote_domain_migrate_prepare3_ret) ret = {0}; struct private_data *priv = dconn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -5784,30 +5628,22 @@ remoteDomainMigratePrepare3(virConnectPtr dconn, if (!cookieout || !cookieoutlen) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("caller ignores cookieout or cookieoutlen")); - goto error; + return -1; } - *cookieout = ret.cookie_out.cookie_out_val; /* Caller frees. */ + *cookieout = g_steal_pointer(&ret.cookie_out.cookie_out_val); /* Caller frees. */ *cookieoutlen = ret.cookie_out.cookie_out_len; + ret.cookie_out.cookie_out_len = 0; } if (ret.uri_out) { if (!uri_out) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("caller ignores uri_out")); - goto error; + return -1; } - *uri_out = *ret.uri_out; /* Caller frees. */ + *uri_out = g_steal_pointer(ret.uri_out); /* Caller frees. */ } - rv = 0; - - done: - VIR_FREE(ret.uri_out); - return rv; - error: - VIR_FREE(ret.cookie_out.cookie_out_val); - if (ret.uri_out) - VIR_FREE(*ret.uri_out); - goto done; + return 0; } @@ -5825,7 +5661,7 @@ remoteDomainMigratePrepareTunnel3(virConnectPtr dconn, { struct private_data *priv = dconn->privateData; remote_domain_migrate_prepare_tunnel3_args args = {0}; - remote_domain_migrate_prepare_tunnel3_ret ret = {0}; + g_auto(remote_domain_migrate_prepare_tunnel3_ret) ret = {0}; virNetClientStream *netst; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -5863,17 +5699,14 @@ remoteDomainMigratePrepareTunnel3(virConnectPtr dconn, if (!cookieout || !cookieoutlen) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("caller ignores cookieout or cookieoutlen")); - goto error; + return -1; } - *cookieout = ret.cookie_out.cookie_out_val; /* Caller frees. */ + *cookieout = g_steal_pointer(&ret.cookie_out.cookie_out_val); /* Caller frees. */ *cookieoutlen = ret.cookie_out.cookie_out_len; + ret.cookie_out.cookie_out_len = 0; } return 0; - - error: - VIR_FREE(ret.cookie_out.cookie_out_val); - return -1; } @@ -5891,7 +5724,7 @@ remoteDomainMigratePerform3(virDomainPtr dom, unsigned long resource) { remote_domain_migrate_perform3_args args = {0}; - remote_domain_migrate_perform3_ret ret = {0}; + g_auto(remote_domain_migrate_perform3_ret) ret = {0}; struct private_data *priv = dom->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -5915,17 +5748,14 @@ remoteDomainMigratePerform3(virDomainPtr dom, if (!cookieout || !cookieoutlen) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("caller ignores cookieout or cookieoutlen")); - goto error; + return -1; } - *cookieout = ret.cookie_out.cookie_out_val; /* Caller frees. */ + *cookieout = g_steal_pointer(&ret.cookie_out.cookie_out_val); /* Caller frees. */ *cookieoutlen = ret.cookie_out.cookie_out_len; + ret.cookie_out.cookie_out_len = 0; } return 0; - - error: - VIR_FREE(ret.cookie_out.cookie_out_val); - return -1; } @@ -5942,9 +5772,8 @@ remoteDomainMigrateFinish3(virConnectPtr dconn, int cancelled) { remote_domain_migrate_finish3_args args = {0}; - remote_domain_migrate_finish3_ret ret = {0}; + g_auto(remote_domain_migrate_finish3_ret) ret = {0}; struct private_data *priv = dconn->privateData; - virDomainPtr rv = NULL; VIR_LOCK_GUARD lock = remoteDriverLock(priv); args.cookie_in.cookie_in_val = (char *)cookiein; @@ -5964,22 +5793,14 @@ remoteDomainMigrateFinish3(virConnectPtr dconn, if (!cookieout || !cookieoutlen) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("caller ignores cookieout or cookieoutlen")); - goto error; + return NULL; } *cookieout = g_steal_pointer(&ret.cookie_out.cookie_out_val); /* Caller frees. */ *cookieoutlen = ret.cookie_out.cookie_out_len; ret.cookie_out.cookie_out_len = 0; } - rv = get_nonnull_domain(dconn, ret.dom); - - xdr_free((xdrproc_t) &xdr_remote_domain_migrate_finish3_ret, (char *) &ret); - - return rv; - - error: - VIR_FREE(ret.cookie_out.cookie_out_val); - return NULL; + return get_nonnull_domain(dconn, ret.dom); } @@ -6015,11 +5836,10 @@ remoteConnectGetCPUModelNames(virConnectPtr conn, char ***models, unsigned int flags) { - int rv = -1; size_t i; g_auto(GStrv) retmodels = NULL; remote_connect_get_cpu_model_names_args args = {0}; - remote_connect_get_cpu_model_names_ret ret = {0}; + g_auto(remote_connect_get_cpu_model_names_ret) ret = {0}; struct private_data *priv = conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -6040,7 +5860,7 @@ remoteConnectGetCPUModelNames(virConnectPtr conn, _("Too many model names '%1$d' for limit '%2$d'"), ret.models.models_len, REMOTE_CONNECT_CPU_MODELS_MAX); - goto cleanup; + return -1; } if (models) { @@ -6052,12 +5872,7 @@ remoteConnectGetCPUModelNames(virConnectPtr conn, *models = g_steal_pointer(&retmodels); } - rv = ret.ret; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_connect_get_cpu_model_names_ret, (char *) &ret); - - return rv; + return ret.ret; } @@ -6179,10 +5994,9 @@ remoteDomainGetDiskErrors(virDomainPtr dom, unsigned int maxerrors, unsigned int flags) { - int rv = -1; struct private_data *priv = dom->conn->privateData; remote_domain_get_disk_errors_args args = {0}; - remote_domain_get_disk_errors_ret ret = {0}; + g_auto(remote_domain_get_disk_errors_ret) ret = {0}; VIR_LOCK_GUARD lock = remoteDriverLock(priv); make_nonnull_domain(&args.dom, dom); @@ -6201,13 +6015,9 @@ remoteDomainGetDiskErrors(virDomainPtr dom, REMOTE_DOMAIN_DISK_ERRORS_MAX, errors, maxerrors) < 0) - goto cleanup; + return -1; - rv = ret.nerrors; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_domain_get_disk_errors_ret, (char *) &ret); - return rv; + return ret.nerrors; } #include "remote_client_bodies.h" @@ -6285,9 +6095,8 @@ remoteDomainGetInterfaceParameters(virDomainPtr domain, virTypedParameterPtr params, int *nparams, unsigned int flags) { - int rv = -1; remote_domain_get_interface_parameters_args args = {0}; - remote_domain_get_interface_parameters_ret ret = {0}; + g_auto(remote_domain_get_interface_parameters_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -6306,8 +6115,7 @@ remoteDomainGetInterfaceParameters(virDomainPtr domain, */ if (*nparams == 0) { *nparams = ret.nparams; - rv = 0; - goto cleanup; + return 0; } if (virTypedParamsDeserialize((struct _virTypedParameterRemote *) ret.params.params_val, @@ -6315,14 +6123,9 @@ remoteDomainGetInterfaceParameters(virDomainPtr domain, REMOTE_DOMAIN_INTERFACE_PARAMETERS_MAX, ¶ms, nparams) < 0) - goto cleanup; + return -1; - rv = 0; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_domain_get_interface_parameters_ret, - (char *) &ret); - return rv; + return 0; } @@ -6332,9 +6135,8 @@ remoteNodeGetMemoryParameters(virConnectPtr conn, int *nparams, unsigned int flags) { - int rv = -1; remote_node_get_memory_parameters_args args = {0}; - remote_node_get_memory_parameters_ret ret = {0}; + g_auto(remote_node_get_memory_parameters_ret) ret = {0}; struct private_data *priv = conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -6351,8 +6153,7 @@ remoteNodeGetMemoryParameters(virConnectPtr conn, */ if (*nparams == 0) { *nparams = ret.nparams; - rv = 0; - goto cleanup; + return 0; } if (virTypedParamsDeserialize((struct _virTypedParameterRemote *) ret.params.params_val, @@ -6360,14 +6161,9 @@ remoteNodeGetMemoryParameters(virConnectPtr conn, REMOTE_NODE_MEMORY_PARAMETERS_MAX, ¶ms, nparams) < 0) - goto cleanup; + return -1; - rv = 0; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_node_get_memory_parameters_ret, - (char *) &ret); - return rv; + return 0; } @@ -6377,9 +6173,8 @@ remoteNodeGetSEVInfo(virConnectPtr conn, int *nparams, unsigned int flags) { - int rv = -1; remote_node_get_sev_info_args args = {0}; - remote_node_get_sev_info_ret ret = {0}; + g_auto(remote_node_get_sev_info_ret) ret = {0}; struct private_data *priv = conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -6395,13 +6190,9 @@ remoteNodeGetSEVInfo(virConnectPtr conn, REMOTE_NODE_SEV_INFO_MAX, params, nparams) < 0) - goto cleanup; + return -1; - rv = 0; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_node_get_sev_info_ret, (char *) &ret); - return rv; + return 0; } @@ -6411,9 +6202,8 @@ remoteNodeGetCPUMap(virConnectPtr conn, unsigned int *online, unsigned int flags) { - int rv = -1; remote_node_get_cpu_map_args args = {0}; - remote_node_get_cpu_map_ret ret = {0}; + g_auto(remote_node_get_cpu_map_ret) ret = {0}; struct private_data *priv = conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -6429,7 +6219,7 @@ remoteNodeGetCPUMap(virConnectPtr conn, return -1; if (ret.ret < 0) - goto cleanup; + return -1; if (cpumap) { *cpumap = g_new0(unsigned char, ret.cpumap.cpumap_len); @@ -6439,11 +6229,7 @@ remoteNodeGetCPUMap(virConnectPtr conn, if (online) *online = ret.online; - rv = ret.ret; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_node_get_cpu_map_ret, (char *) &ret); - return rv; + return ret.ret; } @@ -6480,9 +6266,8 @@ remoteDomainGetJobStats(virDomainPtr domain, int *nparams, unsigned int flags) { - int rv = -1; remote_domain_get_job_stats_args args = {0}; - remote_domain_get_job_stats_ret ret = {0}; + g_auto(remote_domain_get_job_stats_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -6500,14 +6285,9 @@ remoteDomainGetJobStats(virDomainPtr domain, ret.params.params_len, REMOTE_DOMAIN_JOB_STATS_MAX, params, nparams) < 0) - goto cleanup; + return -1; - rv = 0; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_domain_get_job_stats_ret, - (char *) &ret); - return rv; + return 0; } @@ -6521,7 +6301,7 @@ remoteDomainMigrateBegin3Params(virDomainPtr domain, { char *rv = NULL; remote_domain_migrate_begin3_params_args args = {0}; - remote_domain_migrate_begin3_params_ret ret = {0}; + g_auto(remote_domain_migrate_begin3_params_ret) ret = {0}; struct private_data *priv = domain->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -6532,9 +6312,8 @@ remoteDomainMigrateBegin3Params(virDomainPtr domain, REMOTE_DOMAIN_MIGRATE_PARAM_LIST_MAX, (struct _virTypedParameterRemote **) &args.params.params_val, &args.params.params_len, - VIR_TYPED_PARAM_STRING_OKAY) < 0) { - goto cleanup; - } + VIR_TYPED_PARAM_STRING_OKAY) < 0) + return NULL; if (call(domain->conn, priv, 0, REMOTE_PROC_DOMAIN_MIGRATE_BEGIN3_PARAMS, (xdrproc_t) xdr_remote_domain_migrate_begin3_params_args, @@ -6547,22 +6326,19 @@ remoteDomainMigrateBegin3Params(virDomainPtr domain, if (!cookieout || !cookieoutlen) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("caller ignores cookieout or cookieoutlen")); - goto error; + goto cleanup; } - *cookieout = ret.cookie_out.cookie_out_val; /* Caller frees. */ + *cookieout = g_steal_pointer(&ret.cookie_out.cookie_out_val); /* Caller frees. */ *cookieoutlen = ret.cookie_out.cookie_out_len; + ret.cookie_out.cookie_out_len = 0; } - rv = ret.xml; /* caller frees */ + rv = g_steal_pointer(&ret.xml); /* caller frees */ cleanup: virTypedParamsRemoteFree((struct _virTypedParameterRemote *) args.params.params_val, args.params.params_len); return rv; - - error: - VIR_FREE(ret.cookie_out.cookie_out_val); - goto cleanup; } @@ -6579,7 +6355,7 @@ remoteDomainMigratePrepare3Params(virConnectPtr dconn, { int rv = -1; remote_domain_migrate_prepare3_params_args args = {0}; - remote_domain_migrate_prepare3_params_ret ret = {0}; + g_auto(remote_domain_migrate_prepare3_params_ret) ret = {0}; struct private_data *priv = dconn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -6587,9 +6363,8 @@ remoteDomainMigratePrepare3Params(virConnectPtr dconn, REMOTE_DOMAIN_MIGRATE_PARAM_LIST_MAX, (struct _virTypedParameterRemote **) &args.params.params_val, &args.params.params_len, - VIR_TYPED_PARAM_STRING_OKAY) < 0) { - goto cleanup; - } + VIR_TYPED_PARAM_STRING_OKAY) < 0) + return -1; args.cookie_in.cookie_in_val = (char *)cookiein; args.cookie_in.cookie_in_len = cookieinlen; @@ -6606,18 +6381,19 @@ remoteDomainMigratePrepare3Params(virConnectPtr dconn, if (!cookieout || !cookieoutlen) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("caller ignores cookieout or cookieoutlen")); - goto error; + goto cleanup; } - *cookieout = ret.cookie_out.cookie_out_val; /* Caller frees. */ + *cookieout = g_steal_pointer(&ret.cookie_out.cookie_out_val); /* Caller frees. */ *cookieoutlen = ret.cookie_out.cookie_out_len; + ret.cookie_out.cookie_out_len = 0; } if (ret.uri_out) { if (!uri_out) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("caller ignores uri_out")); - goto error; + goto cleanup; } - *uri_out = *ret.uri_out; /* Caller frees. */ + *uri_out = g_steal_pointer(ret.uri_out); /* Caller frees. */ } rv = 0; @@ -6625,14 +6401,7 @@ remoteDomainMigratePrepare3Params(virConnectPtr dconn, cleanup: virTypedParamsRemoteFree((struct _virTypedParameterRemote *) args.params.params_val, args.params.params_len); - VIR_FREE(ret.uri_out); return rv; - - error: - VIR_FREE(ret.cookie_out.cookie_out_val); - if (ret.uri_out) - VIR_FREE(*ret.uri_out); - goto cleanup; } @@ -6650,7 +6419,7 @@ remoteDomainMigratePrepareTunnel3Params(virConnectPtr dconn, struct private_data *priv = dconn->privateData; int rv = -1; remote_domain_migrate_prepare_tunnel3_params_args args = {0}; - remote_domain_migrate_prepare_tunnel3_params_ret ret = {0}; + g_auto(remote_domain_migrate_prepare_tunnel3_params_ret) ret = {0}; virNetClientStream *netst; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -6662,9 +6431,8 @@ remoteDomainMigratePrepareTunnel3Params(virConnectPtr dconn, REMOTE_DOMAIN_MIGRATE_PARAM_LIST_MAX, (struct _virTypedParameterRemote **) &args.params.params_val, &args.params.params_len, - VIR_TYPED_PARAM_STRING_OKAY) < 0) { - goto cleanup; - } + VIR_TYPED_PARAM_STRING_OKAY) < 0) + return -1; if (!(netst = virNetClientStreamNew(priv->remoteProgram, REMOTE_PROC_DOMAIN_MIGRATE_PREPARE_TUNNEL3_PARAMS, @@ -6695,10 +6463,11 @@ remoteDomainMigratePrepareTunnel3Params(virConnectPtr dconn, if (!cookieout || !cookieoutlen) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("caller ignores cookieout or cookieoutlen")); - goto error; + goto cleanup; } - *cookieout = ret.cookie_out.cookie_out_val; /* Caller frees. */ + *cookieout = g_steal_pointer(&ret.cookie_out.cookie_out_val); /* Caller frees. */ *cookieoutlen = ret.cookie_out.cookie_out_len; + ret.cookie_out.cookie_out_len = 0; } rv = 0; @@ -6707,10 +6476,6 @@ remoteDomainMigratePrepareTunnel3Params(virConnectPtr dconn, virTypedParamsRemoteFree((struct _virTypedParameterRemote *) args.params.params_val, args.params.params_len); return rv; - - error: - VIR_FREE(ret.cookie_out.cookie_out_val); - goto cleanup; } @@ -6727,7 +6492,7 @@ remoteDomainMigratePerform3Params(virDomainPtr dom, { int rv = -1; remote_domain_migrate_perform3_params_args args = {0}; - remote_domain_migrate_perform3_params_ret ret = {0}; + g_auto(remote_domain_migrate_perform3_params_ret) ret = {0}; struct private_data *priv = dom->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -6741,9 +6506,8 @@ remoteDomainMigratePerform3Params(virDomainPtr dom, REMOTE_DOMAIN_MIGRATE_PARAM_LIST_MAX, (struct _virTypedParameterRemote **) &args.params.params_val, &args.params.params_len, - VIR_TYPED_PARAM_STRING_OKAY) < 0) { - goto cleanup; - } + VIR_TYPED_PARAM_STRING_OKAY) < 0) + return -1; if (call(dom->conn, priv, 0, REMOTE_PROC_DOMAIN_MIGRATE_PERFORM3_PARAMS, (xdrproc_t) xdr_remote_domain_migrate_perform3_params_args, @@ -6756,10 +6520,11 @@ remoteDomainMigratePerform3Params(virDomainPtr dom, if (!cookieout || !cookieoutlen) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("caller ignores cookieout or cookieoutlen")); - goto error; + goto cleanup; } - *cookieout = ret.cookie_out.cookie_out_val; /* Caller frees. */ + *cookieout = g_steal_pointer(&ret.cookie_out.cookie_out_val); /* Caller frees. */ *cookieoutlen = ret.cookie_out.cookie_out_len; + ret.cookie_out.cookie_out_len = 0; } rv = 0; @@ -6768,10 +6533,6 @@ remoteDomainMigratePerform3Params(virDomainPtr dom, virTypedParamsRemoteFree((struct _virTypedParameterRemote *) args.params.params_val, args.params.params_len); return rv; - - error: - VIR_FREE(ret.cookie_out.cookie_out_val); - goto cleanup; } @@ -6787,7 +6548,7 @@ remoteDomainMigrateFinish3Params(virConnectPtr dconn, int cancelled) { remote_domain_migrate_finish3_params_args args = {0}; - remote_domain_migrate_finish3_params_ret ret = {0}; + g_auto(remote_domain_migrate_finish3_params_ret) ret = {0}; struct private_data *priv = dconn->privateData; virDomainPtr rv = NULL; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -6801,9 +6562,8 @@ remoteDomainMigrateFinish3Params(virConnectPtr dconn, REMOTE_DOMAIN_MIGRATE_PARAM_LIST_MAX, (struct _virTypedParameterRemote **) &args.params.params_val, &args.params.params_len, - VIR_TYPED_PARAM_STRING_OKAY) < 0) { - goto cleanup; - } + VIR_TYPED_PARAM_STRING_OKAY) < 0) + return NULL; if (call(dconn, priv, 0, REMOTE_PROC_DOMAIN_MIGRATE_FINISH3_PARAMS, (xdrproc_t) xdr_remote_domain_migrate_finish3_params_args, @@ -6816,7 +6576,7 @@ remoteDomainMigrateFinish3Params(virConnectPtr dconn, if (!cookieout || !cookieoutlen) { virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("caller ignores cookieout or cookieoutlen")); - goto error; + goto cleanup; } *cookieout = g_steal_pointer(&ret.cookie_out.cookie_out_val); /* Caller frees. */ *cookieoutlen = ret.cookie_out.cookie_out_len; @@ -6824,18 +6584,10 @@ remoteDomainMigrateFinish3Params(virConnectPtr dconn, } rv = get_nonnull_domain(dconn, ret.dom); - - xdr_free((xdrproc_t) &xdr_remote_domain_migrate_finish3_params_ret, - (char *) &ret); - cleanup: virTypedParamsRemoteFree((struct _virTypedParameterRemote *) args.params.params_val, args.params.params_len); return rv; - - error: - VIR_FREE(ret.cookie_out.cookie_out_val); - goto cleanup; } @@ -6863,9 +6615,8 @@ remoteDomainMigrateConfirm3Params(virDomainPtr domain, REMOTE_DOMAIN_MIGRATE_PARAM_LIST_MAX, (struct _virTypedParameterRemote **) &args.params.params_val, &args.params.params_len, - VIR_TYPED_PARAM_STRING_OKAY) < 0) { - goto cleanup; - } + VIR_TYPED_PARAM_STRING_OKAY) < 0) + return -1; if (call(domain->conn, priv, 0, REMOTE_PROC_DOMAIN_MIGRATE_CONFIRM3_PARAMS, (xdrproc_t) xdr_remote_domain_migrate_confirm3_params_args, @@ -6885,10 +6636,9 @@ static virDomainPtr remoteDomainCreateXMLWithFiles(virConnectPtr conn, const char *xml_desc, unsigned int nfiles, int *files, unsigned int flags) { - virDomainPtr rv = NULL; struct private_data *priv = conn->privateData; remote_domain_create_xml_with_files_args args = {0}; - remote_domain_create_xml_with_files_ret ret = {0}; + g_auto(remote_domain_create_xml_with_files_ret) ret = {0}; VIR_LOCK_GUARD lock = remoteDriverLock(priv); args.xml_desc = (char *)xml_desc; @@ -6902,10 +6652,7 @@ remoteDomainCreateXMLWithFiles(virConnectPtr conn, const char *xml_desc, (xdrproc_t)xdr_remote_domain_create_xml_with_files_ret, (char *)&ret) == -1) return NULL; - rv = get_nonnull_domain(conn, ret.dom); - xdr_free((xdrproc_t)xdr_remote_domain_create_xml_with_files_ret, (char *)&ret); - - return rv; + return get_nonnull_domain(conn, ret.dom); } @@ -6916,7 +6663,7 @@ remoteDomainCreateWithFiles(virDomainPtr dom, { struct private_data *priv = dom->conn->privateData; remote_domain_create_with_files_args args = {0}; - remote_domain_create_with_files_ret ret = {0}; + g_auto(remote_domain_create_with_files_ret) ret = {0}; VIR_LOCK_GUARD lock = remoteDriverLock(priv); make_nonnull_domain(&args.dom, dom); @@ -6931,7 +6678,6 @@ remoteDomainCreateWithFiles(virDomainPtr dom, return -1; dom->id = ret.dom.id; - xdr_free((xdrproc_t) &xdr_remote_domain_create_with_files_ret, (char *) &ret); return 0; } @@ -6943,7 +6689,7 @@ remoteDomainGetTime(virDomainPtr dom, { struct private_data *priv = dom->conn->privateData; remote_domain_get_time_args args = {0}; - remote_domain_get_time_ret ret = {0}; + g_auto(remote_domain_get_time_ret) ret = {0}; VIR_LOCK_GUARD lock = remoteDriverLock(priv); make_nonnull_domain(&args.dom, dom); @@ -6958,7 +6704,6 @@ remoteDomainGetTime(virDomainPtr dom, *seconds = ret.seconds; *nseconds = ret.nseconds; - xdr_free((xdrproc_t) &xdr_remote_domain_get_time_ret, (char *) &ret); return 0; } @@ -6973,7 +6718,7 @@ remoteNodeGetFreePages(virConnectPtr conn, unsigned int flags) { remote_node_get_free_pages_args args = {0}; - remote_node_get_free_pages_ret ret = {0}; + g_auto(remote_node_get_free_pages_ret) ret = {0}; struct private_data *priv = conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -6997,8 +6742,6 @@ remoteNodeGetFreePages(virConnectPtr conn, memcpy(counts, ret.counts.counts_val, ret.counts.counts_len * sizeof(*counts)); - xdr_free((xdrproc_t) xdr_remote_node_get_free_pages_ret, (char *) &ret); - return ret.counts.counts_len; } @@ -7053,7 +6796,7 @@ remoteNetworkGetDHCPLeases(virNetworkPtr net, size_t i; struct private_data *priv = net->conn->privateData; remote_network_get_dhcp_leases_args args = {0}; - remote_network_get_dhcp_leases_ret ret = {0}; + g_auto(remote_network_get_dhcp_leases_ret) ret = {0}; virNetworkDHCPLeasePtr *leases_ret = NULL; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -7071,7 +6814,7 @@ remoteNetworkGetDHCPLeases(virNetworkPtr net, virReportError(VIR_ERR_INTERNAL_ERROR, _("Number of leases is %1$d, which exceeds max limit: %2$d"), ret.leases.leases_len, REMOTE_NETWORK_DHCP_LEASES_MAX); - goto cleanup; + return -1; } if (leases) { @@ -7096,8 +6839,6 @@ remoteNetworkGetDHCPLeases(virNetworkPtr net, virNetworkDHCPLeaseFree(leases_ret[i]); VIR_FREE(leases_ret); } - xdr_free((xdrproc_t)xdr_remote_network_get_dhcp_leases_ret, - (char *) &ret); return rv; } @@ -7115,7 +6856,7 @@ remoteConnectGetAllDomainStats(virConnectPtr conn, int rv = -1; size_t i; remote_connect_get_all_domain_stats_args args = {0}; - remote_connect_get_all_domain_stats_ret ret = {0}; + g_auto(remote_connect_get_all_domain_stats_ret) ret = {0}; virDomainStatsRecordPtr elem = NULL; virDomainStatsRecordPtr *tmpret = NULL; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -7176,8 +6917,6 @@ remoteConnectGetAllDomainStats(virConnectPtr conn, } virDomainStatsRecordListFree(tmpret); VIR_FREE(args.doms.doms_val); - xdr_free((xdrproc_t)xdr_remote_connect_get_all_domain_stats_ret, - (char *) &ret); return rv; } @@ -7193,7 +6932,7 @@ remoteNodeAllocPages(virConnectPtr conn, unsigned int flags) { remote_node_alloc_pages_args args = {0}; - remote_node_alloc_pages_ret ret = {0}; + g_auto(remote_node_alloc_pages_ret) ret = {0}; struct private_data *priv = conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -7226,11 +6965,10 @@ remoteDomainGetFSInfo(virDomainPtr dom, virDomainFSInfoPtr **info, unsigned int flags) { - int rv = -1; size_t i, j, len; struct private_data *priv = dom->conn->privateData; remote_domain_get_fsinfo_args args = {0}; - remote_domain_get_fsinfo_ret ret = {0}; + g_auto(remote_domain_get_fsinfo_ret) ret = {0}; remote_domain_fsinfo *src; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -7247,7 +6985,7 @@ remoteDomainGetFSInfo(virDomainPtr dom, virReportError(VIR_ERR_INTERNAL_ERROR, _("Too many mountpoints in fsinfo: %1$d for limit %2$d"), ret.info.info_len, REMOTE_DOMAIN_FSINFO_MAX); - goto cleanup; + return -1; } if (info) { @@ -7255,8 +6993,7 @@ remoteDomainGetFSInfo(virDomainPtr dom, if (!ret.info.info_len) { *info = NULL; - rv = ret.ret; - goto cleanup; + return ret.ret; } info_ret = g_new0(virDomainFSInfoPtr, ret.info.info_len); @@ -7284,12 +7021,7 @@ remoteDomainGetFSInfo(virDomainPtr dom, *info = info_ret; } - rv = ret.ret; - - cleanup: - xdr_free((xdrproc_t)xdr_remote_domain_get_fsinfo_ret, - (char *) &ret); - return rv; + return ret.ret; } @@ -7304,7 +7036,7 @@ remoteDomainInterfaceAddresses(virDomainPtr dom, virDomainInterfacePtr *ifaces_ret = NULL; remote_domain_interface_addresses_args args = {0}; - remote_domain_interface_addresses_ret ret = {0}; + g_auto(remote_domain_interface_addresses_ret) ret = {0}; struct private_data *priv = dom->conn->privateData; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -7323,7 +7055,7 @@ remoteDomainInterfaceAddresses(virDomainPtr dom, virReportError(VIR_ERR_INTERNAL_ERROR, _("Number of interfaces, %1$d exceeds the max limit: %2$d"), ret.ifaces.ifaces_len, REMOTE_DOMAIN_INTERFACE_MAX); - goto cleanup; + return -1; } if (ret.ifaces.ifaces_len) @@ -7376,8 +7108,6 @@ remoteDomainInterfaceAddresses(virDomainPtr dom, virDomainInterfaceFree(ifaces_ret[i]); VIR_FREE(ifaces_ret); } - xdr_free((xdrproc_t)xdr_remote_domain_interface_addresses_ret, - (char *) &ret); return rv; } @@ -7436,7 +7166,7 @@ remoteDomainRename(virDomainPtr dom, const char *new_name, unsigned int flags) int rv = -1; struct private_data *priv = dom->conn->privateData; remote_domain_rename_args args = {0}; - remote_domain_rename_ret ret = {0}; + g_auto(remote_domain_rename_ret) ret = {0}; char *tmp = NULL; VIR_LOCK_GUARD lock = remoteDriverLock(priv); @@ -7470,7 +7200,7 @@ remoteStorageVolGetInfoFlags(virStorageVolPtr vol, { struct private_data *priv = vol->conn->privateData; remote_storage_vol_get_info_flags_args args = {0}; - remote_storage_vol_get_info_flags_ret ret = {0}; + g_auto(remote_storage_vol_get_info_flags_ret) ret = {0}; VIR_LOCK_GUARD lock = remoteDriverLock(priv); make_nonnull_storage_vol(&args.vol, vol); @@ -7497,10 +7227,9 @@ remoteNetworkPortGetParameters(virNetworkPortPtr port, int *nparams, unsigned int flags) { - int rv = -1; struct private_data *priv = port->net->conn->privateData; remote_network_port_get_parameters_args args = {0}; - remote_network_port_get_parameters_ret ret = {0}; + g_auto(remote_network_port_get_parameters_ret) ret = {0}; VIR_LOCK_GUARD lock = remoteDriverLock(priv); make_nonnull_network_port(&args.port, port); @@ -7516,13 +7245,9 @@ remoteNetworkPortGetParameters(virNetworkPortPtr port, REMOTE_NETWORK_PORT_PARAMETERS_MAX, params, nparams) < 0) - goto cleanup; + return -1; - rv = 0; - - cleanup: - xdr_free((xdrproc_t) xdr_remote_network_port_get_parameters_ret, (char *) &ret); - return rv; + return 0; } static int @@ -7532,10 +7257,9 @@ remoteDomainGetGuestInfo(virDomainPtr dom, int *nparams, unsigned int flags) { - int rv = -1; struct private_data *priv = dom->conn->privateData; remote_domain_get_guest_info_args args = {0}; - remote_domain_get_guest_info_ret ret = {0}; + g_auto(remote_domain_get_guest_info_ret) ret = {0}; VIR_LOCK_GUARD lock = remoteDriverLock(priv); make_nonnull_domain(&args.dom, dom); @@ -7553,14 +7277,9 @@ remoteDomainGetGuestInfo(virDomainPtr dom, REMOTE_DOMAIN_GUEST_INFO_PARAMS_MAX, params, nparams) < 0) - goto cleanup; + return -1; - rv = 0; - - cleanup: - xdr_free((xdrproc_t)xdr_remote_domain_get_guest_info_ret, - (char *) &ret); - return rv; + return 0; } static int @@ -7569,11 +7288,10 @@ remoteDomainAuthorizedSSHKeysGet(virDomainPtr domain, char ***keys, unsigned int flags) { - int rv = -1; size_t i; struct private_data *priv = domain->conn->privateData; remote_domain_authorized_ssh_keys_get_args args = {0}; - remote_domain_authorized_ssh_keys_get_ret ret = {0}; + g_auto(remote_domain_authorized_ssh_keys_get_ret) ret = {0}; VIR_LOCK_GUARD lock = remoteDriverLock(priv); make_nonnull_domain(&args.dom, domain); @@ -7588,19 +7306,14 @@ remoteDomainAuthorizedSSHKeysGet(virDomainPtr domain, if (ret.keys.keys_len > REMOTE_DOMAIN_AUTHORIZED_SSH_KEYS_MAX) { virReportError(VIR_ERR_RPC, "%s", _("remoteDomainAuthorizedSSHKeysGet: returned number of keys exceeds limit")); - goto cleanup; + return -1; } *keys = g_new0(char *, ret.keys.keys_len + 1); for (i = 0; i < ret.keys.keys_len; i++) - (*keys)[i] = g_strdup(ret.keys.keys_val[i]); + (*keys)[i] = g_steal_pointer(&ret.keys.keys_val[i]); - rv = ret.keys.keys_len; - - cleanup: - xdr_free((xdrproc_t)xdr_remote_domain_authorized_ssh_keys_get_ret, - (char *) &ret); - return rv; + return ret.keys.keys_len; } static int @@ -7640,11 +7353,10 @@ remoteDomainGetMessages(virDomainPtr domain, char ***msgs, unsigned int flags) { - int rv = -1; size_t i; struct private_data *priv = domain->conn->privateData; remote_domain_get_messages_args args = {0}; - remote_domain_get_messages_ret ret = {0}; + g_auto(remote_domain_get_messages_ret) ret = {0}; VIR_LOCK_GUARD lock = remoteDriverLock(priv); make_nonnull_domain(&args.dom, domain); @@ -7653,25 +7365,20 @@ remoteDomainGetMessages(virDomainPtr domain, if (call(domain->conn, priv, 0, REMOTE_PROC_DOMAIN_GET_MESSAGES, (xdrproc_t) xdr_remote_domain_get_messages_args, (char *)&args, (xdrproc_t) xdr_remote_domain_get_messages_ret, (char *)&ret) == -1) { - goto cleanup; + return -1; } if (ret.msgs.msgs_len > REMOTE_DOMAIN_MESSAGES_MAX) { virReportError(VIR_ERR_RPC, "%s", _("remoteDomainGetMessages: returned number of msgs exceeds limit")); - goto cleanup; + return -1; } *msgs = g_new0(char *, ret.msgs.msgs_len + 1); for (i = 0; i < ret.msgs.msgs_len; i++) - (*msgs)[i] = g_strdup(ret.msgs.msgs_val[i]); + (*msgs)[i] = g_steal_pointer(&ret.msgs.msgs_val[i]); - rv = ret.msgs.msgs_len; - - cleanup: - xdr_free((xdrproc_t)xdr_remote_domain_get_messages_ret, - (char *) &ret); - return rv; + return ret.msgs.msgs_len; }