Commit
d42a2ff caused a regression in creating a disk-only snapshot
of a qcow2 disk; by passing the wrong variable to the monitor call,
libvirt ended up creating JSON that looked like "format":null instead
of the intended "format":"qcow2".
To make it easier to diagnose this in the future, make JSON creation
error out if "s:arg" is paired with NULL (it is still possible to
use "n:arg" in the rare cases where qemu will accept a null).
* src/qemu/qemu_driver.c
(qemuDomainSnapshotCreateSingleDiskActive): Pass correct value.
* src/qemu/qemu_monitor_json.c (qemuMonitorJSONMakeCommandRaw):
Improve error message.
/* create the actual snapshot */
ret = qemuMonitorDiskSnapshot(priv->mon, actions, device, source,
- driverType, reuse);
+ snap->driverType, reuse);
virDomainAuditDisk(vm, disk->src, source, "snapshot", ret >= 0);
if (ret < 0)
goto cleanup;
switch (type) {
case 's': {
char *val = va_arg(args, char *);
+ if (!val) {
+ qemuReportError(VIR_ERR_INTERNAL_ERROR,
+ _("argument key '%s' must not have null value"),
+ key);
+ goto error;
+ }
ret = virJSONValueObjectAppendString(jargs, key, val);
} break;
case 'i': {