diff --git a/tools/xenpaging/xenpaging.c b/tools/xenpaging/xenpaging.c index dd346db9a6..0a2fe2cf7c 100644 --- a/tools/xenpaging/xenpaging.c +++ b/tools/xenpaging/xenpaging.c @@ -521,8 +521,6 @@ int main(int argc, char *argv[]) domain_id = atoi(argv[1]); num_pages = atoi(argv[2]); - victims = calloc(num_pages, sizeof(xenpaging_victim_t)); - /* Seed random-number generator */ srand(time(NULL)); @@ -543,6 +541,13 @@ int main(int argc, char *argv[]) return 2; } + if ( num_pages < 0 || num_pages > paging->domain_info->max_pages ) + { + num_pages = paging->domain_info->max_pages; + DPRINTF("setting num_pages to %d\n", num_pages); + } + victims = calloc(num_pages, sizeof(xenpaging_victim_t)); + /* ensure that if we get a signal, we'll do cleanup, then exit */ act.sa_handler = close_handler; act.sa_flags = 0;