continue;
}
+ ADD_ARG_SPACE;
+
if (idx < 0) {
qemudReportError(conn, NULL, NULL, VIR_ERR_INTERNAL_ERROR,
_("unsupported disk type '%s'"), disk->dst);
optstr = virBufferContentAndReset(&opt);
- ADD_ARG_LIT("-drive");
+ if ((qargv[qargc++] = strdup("-drive")) == NULL) {
+ VIR_FREE(optstr);
+ goto no_memory;
+ }
ADD_ARG(optstr);
}
} else {
net->vlan = i;
+ ADD_ARG_SPACE;
if ((qemuCmdFlags & QEMUD_CMD_FLAG_NET_NAME) &&
qemuAssignNetNames(def, net) < 0)
goto no_memory;
if (qemuBuildNicStr(conn, net, NULL, ',', net->vlan, &nic) < 0)
goto error;
- ADD_ARG_LIT("-net");
+ if ((qargv[qargc++] = strdup("-net")) == NULL) {
+ VIR_FREE(nic);
+ goto no_memory;
+ }
ADD_ARG(nic);
+
+ ADD_ARG_SPACE;
if (net->type == VIR_DOMAIN_NET_TYPE_NETWORK ||
net->type == VIR_DOMAIN_NET_TYPE_BRIDGE) {
int tapfd = qemudNetworkIfaceConnect(conn, driver, net, qemuCmdFlags);
goto error;
}
- ADD_ARG_LIT("-net");
+ if ((qargv[qargc++] = strdup("-net")) == NULL) {
+ VIR_FREE(host);
+ goto no_memory;
+ }
ADD_ARG(host);
VIR_FREE(tapfd_name);
goto no_memory;
for (i = 0 ; i < envend ; i++) {
progenv[i] = arglist[i];
+ arglist[i] = NULL;
}
progenv[i] = NULL;
}
break;
}
+ if (virBufferError(buf))
+ return -1;
+
return 0;
}
virBufferVSprintf(buf, "%s%s", i ? "," : "", str);
}
+ if (virBufferError(buf))
+ return -1;
+
return 0;
}
DO_TEST_FULL("restore-v2", QEMUD_CMD_FLAG_MIGRATE_QEMU_EXEC, "exec:cat");
DO_TEST_FULL("migrate", QEMUD_CMD_FLAG_MIGRATE_QEMU_TCP, "tcp:10.0.0.1:5000");
+ free(driver.stateDir);
virCapabilitiesFree(driver.caps);
return(ret==0 ? EXIT_SUCCESS : EXIT_FAILURE);
DO_TEST_FULL("restore-v2", QEMUD_CMD_FLAG_MIGRATE_QEMU_EXEC, "exec:cat");
DO_TEST_FULL("migrate", QEMUD_CMD_FLAG_MIGRATE_QEMU_TCP, "tcp:10.0.0.1:5000");
+ free(driver.stateDir);
virCapabilitiesFree(driver.caps);
return(ret==0 ? EXIT_SUCCESS : EXIT_FAILURE);