From 4e00d7fb041687e4c29764077011f1ed0c1c03aa Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Thu, 24 Aug 2023 10:08:07 +0200 Subject: [PATCH] nodeDeviceParseMdevctlJSON: Accept empty string 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 treat them the same, i.e. as no mediated devices. Resolves: https://gitlab.com/libvirt/libvirt/-/issues/523 Signed-off-by: Michal Privoznik Reviewed-by: Kristina Hanicova --- 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.47.2