It is possible for 'mdevctl' to output nothing, an empty string (e.g. when no mediated devices are defined on the host). What is weird is that when passing '--defined' then 'mdevctl' outputs an empty JSON array instead. Nevertheless, we should accept both and threat them the same, i.e. as no mediated devices. Resolves: https://gitlab.com/libvirt/libvirt/-/issues/523 Signed-off-by: Michal Privoznik <mprivozn@xxxxxxxxxx> --- src/node_device/node_device_driver.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/node_device/node_device_driver.c b/src/node_device/node_device_driver.c index 2ef9197adc..593bc64e25 100644 --- a/src/node_device/node_device_driver.c +++ b/src/node_device/node_device_driver.c @@ -43,6 +43,7 @@ #include "virutil.h" #include "vircommand.h" #include "virlog.h" +#include "virstring.h" #define VIR_FROM_THIS VIR_FROM_NODEDEV @@ -1176,6 +1177,12 @@ nodeDeviceParseMdevctlJSON(const char *jsonstring, size_t j; virJSONValue *obj; + if (virStringIsEmpty(jsonstring)) { + VIR_DEBUG("mdevctl has no defined mediated devices"); + *devs = NULL; + return 0; + } + json_devicelist = virJSONValueFromString(jsonstring); if (!json_devicelist || !virJSONValueIsArray(json_devicelist)) { -- 2.41.0