diff --git a/tools/misc/xen-mfndump.c b/tools/misc/xen-mfndump.c index 88cfafa44e..dea9fa9e0c 100644 --- a/tools/misc/xen-mfndump.c +++ b/tools/misc/xen-mfndump.c @@ -30,7 +30,8 @@ int help_func(int argc, char *argv[]) int dump_m2p_func(int argc, char *argv[]) { - unsigned long i, max_mfn; + unsigned long i; + long max_mfn; xen_pfn_t *m2p_table; if ( argc > 0 ) @@ -41,6 +42,12 @@ int dump_m2p_func(int argc, char *argv[]) /* Map M2P and obtain gpfn */ max_mfn = xc_maximum_ram_page(xch); + if ( max_mfn < 0 ) + { + ERROR("Failed to get the maximum mfn"); + return -1; + } + if ( !(m2p_table = xc_map_m2p(xch, max_mfn, PROT_READ, NULL)) ) { ERROR("Failed to map live M2P table");