On Mon, Mar 04, 2024 at 05:42:03PM +0300, Maksim Davydov wrote: > 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 <davydov-...@yandex-team.ru> > --- > migration/ram.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/migration/ram.c b/migration/ram.c > index 45a00b45ed..95d8b19c3b 100644 > --- a/migration/ram.c > +++ b/migration/ram.c > @@ -3902,6 +3902,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; > > -- > 2.34.1 > >
Queued, thanks. -- Peter Xu