From 12ab1e4fe84aafac37e006673f0d01f716a9a058 Mon Sep 17 00:00:00 2001 From: Maksim Davydov Date: Mon, 4 Mar 2024 17:42:03 +0300 Subject: [PATCH] migration/ram: add additional check If a migration stream is broken, the address and flag reading can return zero. Thus, an irrelevant flag error will be returned instead of EIO. It can be fixed by additional check after the reading. Signed-off-by: Maksim Davydov Link: https://lore.kernel.org/r/20240304144203.158477-1-davydov-max@yandex-team.ru Signed-off-by: Peter Xu --- migration/ram.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/migration/ram.c b/migration/ram.c index 003c28e133..2cd936d9ce 100644 --- a/migration/ram.c +++ b/migration/ram.c @@ -4214,6 +4214,12 @@ static int ram_load_precopy(QEMUFile *f) i++; addr = qemu_get_be64(f); + ret = qemu_file_get_error(f); + if (ret) { + error_report("Getting RAM address failed"); + break; + } + flags = addr & ~TARGET_PAGE_MASK; addr &= TARGET_PAGE_MASK;