From: GuoHan Zhao <[email protected]>
check_migr() sets an error when the migration capability is not an object,
but still returns true. This lets version negotiation continue with an
Error set and reports the wrong capability name in the diagnostic.
Return false for the malformed capability, and report the migration
capability name.
Fixes: 36227628d824 ("vfio-user: implement message send infrastructure")
Signed-off-by: GuoHan Zhao <[email protected]>
Reviewed-by: John Levon <[email protected]>
Link:
https://lore.kernel.org/qemu-devel/[email protected]
Signed-off-by: Cédric Le Goater <[email protected]>
---
hw/vfio-user/proxy.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/hw/vfio-user/proxy.c b/hw/vfio-user/proxy.c
index
314dfd23d8af385532bb87219fb3153961942cba..8b7cc36231ab276493e252064b560dcea13ae749
100644
--- a/hw/vfio-user/proxy.c
+++ b/hw/vfio-user/proxy.c
@@ -1190,8 +1190,8 @@ static bool check_migr(VFIOUserProxy *proxy, QObject
*qobj, Error **errp)
QDict *qdict = qobject_to(QDict, qobj);
if (qdict == NULL) {
- error_setg(errp, "malformed %s", VFIO_USER_CAP_MAX_FDS);
- return true;
+ error_setg(errp, "malformed %s", VFIO_USER_CAP_MIGR);
+ return false;
}
return caps_parse(proxy, qdict, caps_migr, errp);
}
--
2.54.0