vz: refactor prlsdkGetSerialInfo

Use g_autofree for the two strings still using manual cleanup
and remove the pointless cleanup label.

Signed-off-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
This commit is contained in:
Ján Tomko 2022-06-22 07:24:59 +02:00
parent 28337e9485
commit 6afc449106

View File

@ -1130,26 +1130,25 @@ prlsdkGetSerialInfo(PRL_HANDLE serialPort, virDomainChrDef *chr)
PRL_RESULT pret; PRL_RESULT pret;
PRL_UINT32 serialPortIndex; PRL_UINT32 serialPortIndex;
PRL_UINT32 emulatedType; PRL_UINT32 emulatedType;
char *friendlyName = NULL; g_autofree char *friendlyName = NULL;
PRL_SERIAL_PORT_SOCKET_OPERATION_MODE socket_mode; PRL_SERIAL_PORT_SOCKET_OPERATION_MODE socket_mode;
char *uristr = NULL; g_autofree char *uristr = NULL;
g_autoptr(virURI) uri = NULL; g_autoptr(virURI) uri = NULL;
int ret = -1;
chr->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL; chr->deviceType = VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL;
pret = PrlVmDev_GetIndex(serialPort, &serialPortIndex); pret = PrlVmDev_GetIndex(serialPort, &serialPortIndex);
prlsdkCheckRetGoto(pret, cleanup); prlsdkCheckRetExit(pret, -1);
chr->target.port = serialPortIndex; chr->target.port = serialPortIndex;
pret = PrlVmDev_GetEmulatedType(serialPort, &emulatedType); pret = PrlVmDev_GetEmulatedType(serialPort, &emulatedType);
prlsdkCheckRetGoto(pret, cleanup); prlsdkCheckRetExit(pret, -1);
if (!(friendlyName = prlsdkGetStringParamVar(PrlVmDev_GetFriendlyName, if (!(friendlyName = prlsdkGetStringParamVar(PrlVmDev_GetFriendlyName,
serialPort))) serialPort)))
goto cleanup; return -1;
pret = PrlVmDevSerial_GetSocketMode(serialPort, &socket_mode); pret = PrlVmDevSerial_GetSocketMode(serialPort, &socket_mode);
prlsdkCheckRetGoto(pret, cleanup); prlsdkCheckRetExit(pret, -1);
switch (emulatedType) { switch (emulatedType) {
case PDT_USE_OUTPUT_FILE: case PDT_USE_OUTPUT_FILE:
@ -1169,7 +1168,7 @@ prlsdkGetSerialInfo(PRL_HANDLE serialPort, virDomainChrDef *chr)
chr->source->type = VIR_DOMAIN_CHR_TYPE_TCP; chr->source->type = VIR_DOMAIN_CHR_TYPE_TCP;
uristr = g_strdup_printf("tcp://%s", friendlyName); uristr = g_strdup_printf("tcp://%s", friendlyName);
if (!(uri = virURIParse(uristr))) if (!(uri = virURIParse(uristr)))
goto cleanup; return -1;
chr->source->data.tcp.host = g_strdup(uri->server); chr->source->data.tcp.host = g_strdup(uri->server);
chr->source->data.tcp.service = g_strdup_printf("%d", uri->port); chr->source->data.tcp.service = g_strdup_printf("%d", uri->port);
chr->source->data.tcp.listen = socket_mode == PSP_SERIAL_SOCKET_SERVER; chr->source->data.tcp.listen = socket_mode == PSP_SERIAL_SOCKET_SERVER;
@ -1178,7 +1177,7 @@ prlsdkGetSerialInfo(PRL_HANDLE serialPort, virDomainChrDef *chr)
chr->source->type = VIR_DOMAIN_CHR_TYPE_UDP; chr->source->type = VIR_DOMAIN_CHR_TYPE_UDP;
uristr = g_strdup_printf("udp://%s", friendlyName); uristr = g_strdup_printf("udp://%s", friendlyName);
if (!(uri = virURIParse(uristr))) if (!(uri = virURIParse(uristr)))
goto cleanup; return -1;
chr->source->data.udp.bindHost = g_strdup(uri->server); chr->source->data.udp.bindHost = g_strdup(uri->server);
chr->source->data.udp.bindService = g_strdup_printf("%d", uri->port); chr->source->data.udp.bindService = g_strdup_printf("%d", uri->port);
chr->source->data.udp.connectHost = g_strdup(uri->server); chr->source->data.udp.connectHost = g_strdup(uri->server);
@ -1187,17 +1186,10 @@ prlsdkGetSerialInfo(PRL_HANDLE serialPort, virDomainChrDef *chr)
default: default:
virReportError(VIR_ERR_INTERNAL_ERROR, virReportError(VIR_ERR_INTERNAL_ERROR,
_("Unknown serial type: %X"), emulatedType); _("Unknown serial type: %X"), emulatedType);
goto cleanup; return -1;
break;
} }
ret = 0; return 0;
cleanup:
VIR_FREE(friendlyName);
VIR_FREE(uristr);
return ret;
} }