virsh: Don't read nparams when virDomainGetMemoryParameters fails

Also exit early when nparams is 0.
This commit is contained in:
Matthias Bolte 2010-10-20 14:16:28 +02:00
parent 916f95b7aa
commit 076cf3a0bd

View File

@ -2941,17 +2941,22 @@ cmdMemtune(vshControl * ctl, const vshCmd * cmd)
if (nparams == 0) { if (nparams == 0) {
/* get the number of memory parameters */ /* get the number of memory parameters */
if ((virDomainGetMemoryParameters(dom, NULL, &nparams, 0) != 0) && if (virDomainGetMemoryParameters(dom, NULL, &nparams, 0) != 0) {
(nparams != 0)) {
vshError(ctl, "%s", vshError(ctl, "%s",
_("Unable to get number of memory parameters")); _("Unable to get number of memory parameters"));
goto cleanup; goto cleanup;
} }
if (nparams == 0) {
/* nothing to output */
ret = TRUE;
goto cleanup;
}
/* now go get all the memory parameters */ /* now go get all the memory parameters */
params = vshMalloc(ctl, sizeof(virMemoryParameter) * nparams); params = vshMalloc(ctl, sizeof(virMemoryParameter) * nparams);
memset(params, 0, sizeof(virMemoryParameter) * nparams); memset(params, 0, sizeof(virMemoryParameter) * nparams);
if (virDomainGetMemoryParameters(dom, params, &nparams, 0)) { if (virDomainGetMemoryParameters(dom, params, &nparams, 0) != 0) {
vshError(ctl, "%s", _("Unable to get memory parameters")); vshError(ctl, "%s", _("Unable to get memory parameters"));
goto cleanup; goto cleanup;
} }
@ -3026,7 +3031,7 @@ cmdMemtune(vshControl * ctl, const vshCmd * cmd)
} }
} }
if (virDomainSetMemoryParameters(dom, params, nparams, 0) != 0) if (virDomainSetMemoryParameters(dom, params, nparams, 0) != 0)
vshError(ctl, "%s", _("Unable to change Memory Parameters")); vshError(ctl, "%s", _("Unable to change memory parameters"));
else else
ret = TRUE; ret = TRUE;
} }