qemu: monitor: Sanitize arguments of qemuMonitorBlockdevReopen

Take the virJSONValue array object which is passed to the
'blockdev-reopen' command as the 'options' argument rather than making
the caller wrap all the properties.

The code was a leftover from the time when the blockdev-reopen command
had a different syntax, and thus can be cleaned up.

Also note that the logging of the node name never worked as the top
level object didn't ever contain a 'node-name' property.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2023-11-22 14:42:26 +01:00
parent 24b667eeed
commit 7e66ff4fd1
5 changed files with 9 additions and 16 deletions

View File

@ -3169,7 +3169,6 @@ int
qemuBlockReopenFormatMon(qemuMonitor *mon,
virStorageSource *src)
{
g_autoptr(virJSONValue) reopenprops = NULL;
g_autoptr(virJSONValue) srcprops = NULL;
g_autoptr(virJSONValue) reopenoptions = virJSONValueNewArray();
@ -3179,12 +3178,7 @@ qemuBlockReopenFormatMon(qemuMonitor *mon,
if (virJSONValueArrayAppend(reopenoptions, &srcprops) < 0)
return -1;
if (virJSONValueObjectAdd(&reopenprops,
"a:options", &reopenoptions,
NULL) < 0)
return -1;
if (qemuMonitorBlockdevReopen(mon, &reopenprops) < 0)
if (qemuMonitorBlockdevReopen(mon, &reopenoptions) < 0)
return -1;
return 0;

View File

@ -3971,14 +3971,11 @@ qemuMonitorBlockdevAdd(qemuMonitor *mon,
int
qemuMonitorBlockdevReopen(qemuMonitor *mon,
virJSONValue **props)
virJSONValue **options)
{
VIR_DEBUG("props=%p (node-name=%s)", *props,
NULLSTR(virJSONValueObjectGetString(*props, "node-name")));
QEMU_CHECK_MONITOR(mon);
return qemuMonitorJSONBlockdevReopen(mon, props);
return qemuMonitorJSONBlockdevReopen(mon, options);
}

View File

@ -1309,7 +1309,7 @@ int qemuMonitorBlockdevAdd(qemuMonitor *mon,
virJSONValue **props);
int qemuMonitorBlockdevReopen(qemuMonitor *mon,
virJSONValue **props);
virJSONValue **options);
int qemuMonitorBlockdevDel(qemuMonitor *mon,
const char *nodename);

View File

@ -7785,12 +7785,14 @@ qemuMonitorJSONBlockdevAdd(qemuMonitor *mon,
int
qemuMonitorJSONBlockdevReopen(qemuMonitor *mon,
virJSONValue **props)
virJSONValue **options)
{
g_autoptr(virJSONValue) cmd = NULL;
g_autoptr(virJSONValue) reply = NULL;
if (!(cmd = qemuMonitorJSONMakeCommandInternal("blockdev-reopen", props)))
if (!(cmd = qemuMonitorJSONMakeCommand("blockdev-reopen",
"a:options", options,
NULL)))
return -1;
if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)

View File

@ -691,7 +691,7 @@ qemuMonitorJSONBlockdevAdd(qemuMonitor *mon,
int
qemuMonitorJSONBlockdevReopen(qemuMonitor *mon,
virJSONValue **props)
virJSONValue **options)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
int