|
@@ -2224,6 +2224,8 @@ static unsigned long read_swap_header(struct swap_info_struct *p,
|
|
swab32s(&swap_header->info.version);
|
|
swab32s(&swap_header->info.version);
|
|
swab32s(&swap_header->info.last_page);
|
|
swab32s(&swap_header->info.last_page);
|
|
swab32s(&swap_header->info.nr_badpages);
|
|
swab32s(&swap_header->info.nr_badpages);
|
|
|
|
+ if (swap_header->info.nr_badpages > MAX_SWAP_BADPAGES)
|
|
|
|
+ return 0;
|
|
for (i = 0; i < swap_header->info.nr_badpages; i++)
|
|
for (i = 0; i < swap_header->info.nr_badpages; i++)
|
|
swab32s(&swap_header->info.badpages[i]);
|
|
swab32s(&swap_header->info.badpages[i]);
|
|
}
|
|
}
|