mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-08 07:15:46 +00:00
cmdDomHostname: Fix uninitialized use of 'hostname' by refactoring cleanup
Use 'g_autoptr' which mandates initialization for 'hostname' and also for 'domain' to allow full refactor of the cleanup path. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
140c756f5c
commit
1a53b2baab
@ -11885,9 +11885,8 @@ VIR_ENUM_IMPL(virshDomainHostnameSource,
|
|||||||
static bool
|
static bool
|
||||||
cmdDomHostname(vshControl *ctl, const vshCmd *cmd)
|
cmdDomHostname(vshControl *ctl, const vshCmd *cmd)
|
||||||
{
|
{
|
||||||
char *hostname;
|
g_autofree char *hostname = NULL;
|
||||||
virDomainPtr dom;
|
g_autoptr(virshDomain) dom = NULL;
|
||||||
bool ret = false;
|
|
||||||
const char *sourcestr = NULL;
|
const char *sourcestr = NULL;
|
||||||
int flags = 0; /* Use default value. Drivers can have its own default. */
|
int flags = 0; /* Use default value. Drivers can have its own default. */
|
||||||
|
|
||||||
@ -11895,14 +11894,14 @@ cmdDomHostname(vshControl *ctl, const vshCmd *cmd)
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (vshCommandOptStringReq(ctl, cmd, "source", &sourcestr) < 0)
|
if (vshCommandOptStringReq(ctl, cmd, "source", &sourcestr) < 0)
|
||||||
goto error;
|
return false;
|
||||||
|
|
||||||
if (sourcestr) {
|
if (sourcestr) {
|
||||||
int source = virshDomainHostnameSourceTypeFromString(sourcestr);
|
int source = virshDomainHostnameSourceTypeFromString(sourcestr);
|
||||||
|
|
||||||
if (source < 0) {
|
if (source < 0) {
|
||||||
vshError(ctl, _("Unknown data source '%s'"), sourcestr);
|
vshError(ctl, _("Unknown data source '%s'"), sourcestr);
|
||||||
goto error;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch ((virshDomainHostnameSource) source) {
|
switch ((virshDomainHostnameSource) source) {
|
||||||
@ -11920,16 +11919,11 @@ cmdDomHostname(vshControl *ctl, const vshCmd *cmd)
|
|||||||
hostname = virDomainGetHostname(dom, flags);
|
hostname = virDomainGetHostname(dom, flags);
|
||||||
if (hostname == NULL) {
|
if (hostname == NULL) {
|
||||||
vshError(ctl, "%s", _("failed to get hostname"));
|
vshError(ctl, "%s", _("failed to get hostname"));
|
||||||
goto error;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
vshPrint(ctl, "%s\n", hostname);
|
vshPrint(ctl, "%s\n", hostname);
|
||||||
ret = true;
|
return true;
|
||||||
|
|
||||||
error:
|
|
||||||
VIR_FREE(hostname);
|
|
||||||
virshDomainFree(dom);
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user