diff --git a/tools/virsh-domain.c b/tools/virsh-domain.c
index 452e518156..ba492e807e 100644
--- a/tools/virsh-domain.c
+++ b/tools/virsh-domain.c
@@ -2481,18 +2481,17 @@ cmdBlockcopy(vshControl *ctl, const vshCmd *cmd)
if (!xmlstr) {
g_auto(virBuffer) buf = VIR_BUFFER_INITIALIZER;
g_auto(virBuffer) attrBuf = VIR_BUFFER_INITIALIZER;
- g_auto(virBuffer) childBuf = VIR_BUFFER_INITIALIZER;
+ g_auto(virBuffer) childBuf = VIR_BUFFER_INIT_CHILD(&buf);
if (blockdev) {
virBufferAddLit(&attrBuf, " type='block'");
- virBufferAddLit(&childBuf, "\n", dest);
} else {
- virBufferAddLit(&buf, " type='file'");
- virBufferAddLit(&childBuf, "\n", dest);
}
- virBufferEscapeString(&buf, "'%s'/>\n", dest);
- virBufferEscapeString(&buf, "\n", format);
+ virBufferEscapeString(&childBuf, "\n", format);
virXMLFormatElement(&buf, "disk", &attrBuf, &childBuf);
xmlstr = virBufferContentAndReset(&buf);
}