diff --git a/tools/virsh.c b/tools/virsh.c index eadc519451301c84e73d837889adb01dbb2ed693..669c9c9c987ac493b5329f37fe42a3a0e3f2aa1d 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -536,6 +536,8 @@ vshTreePrintInternal(vshControl *ctl, /* Finally print all children */ virBufferAddLit(indent, " "); + if (virBufferError(indent)) + goto cleanup; for (i = 0 ; i < num_devices ; i++) { const char *parent = (lookup)(i, true, opaque); @@ -545,15 +547,18 @@ vshTreePrintInternal(vshControl *ctl, false, indent) < 0) goto cleanup; } - virBufferTrim(indent, " ", -1); + if (virBufferTrim(indent, " ", -1) < 0) + goto cleanup; /* If there was no child device, and we're the last in * a list of devices, then print another blank line */ if (nextlastdev == -1 && devid == lastdev) vshPrint(ctl, "%s\n", virBufferCurrentContent(indent)); - if (!root) - virBufferTrim(indent, NULL, 2); + if (!root) { + if (virBufferTrim(indent, NULL, 2) < 0) + goto cleanup; + } ret = 0; cleanup: return ret;