From: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
qemu_file_get_fd() may fail, and return -1 in this case.
We don't support passing "invalid" file descriptors (like -1),
so we should not interpret error here like invalid descriptor.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/qemu-devel/20260114064710.176268-2-vsementsov@yandex-team.ru
Signed-off-by: Fabiano Rosas <farosas@suse.de>
---
migration/vmstate-types.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/migration/vmstate-types.c b/migration/vmstate-types.c
index 4b01dc19c2..e34bf4486e 100644
--- a/migration/vmstate-types.c
+++ b/migration/vmstate-types.c
@@ -321,12 +321,21 @@ const VMStateInfo vmstate_info_uint64 = {
static int get_fd(QEMUFile *f, void *pv, size_t size,
const VMStateField *field)
{
+ int fd;
int32_t *v = pv;
+
if (migrate_mode() == MIG_MODE_CPR_EXEC) {
qemu_get_sbe32s(f, v);
return 0;
}
- *v = qemu_file_get_fd(f);
+
+ fd = qemu_file_get_fd(f);
+ if (fd < 0) {
+ return -1;
+ }
+
+ *v = fd;
+
return 0;
}
--
2.51.0