|
@@ -1493,7 +1493,7 @@ asmlinkage long sys_swapon(const char __user * specialfile, int swap_flags)
|
|
|
goto bad_swap;
|
|
|
if (swap_header->info.nr_badpages > MAX_SWAP_BADPAGES)
|
|
|
goto bad_swap;
|
|
|
-
|
|
|
+
|
|
|
/* OK, set up the swap map and apply the bad block list */
|
|
|
if (!(p->swap_map = vmalloc(maxpages * sizeof(short)))) {
|
|
|
error = -ENOMEM;
|
|
@@ -1502,17 +1502,17 @@ asmlinkage long sys_swapon(const char __user * specialfile, int swap_flags)
|
|
|
|
|
|
error = 0;
|
|
|
memset(p->swap_map, 0, maxpages * sizeof(short));
|
|
|
- for (i=0; i<swap_header->info.nr_badpages; i++) {
|
|
|
- int page = swap_header->info.badpages[i];
|
|
|
- if (page <= 0 || page >= swap_header->info.last_page)
|
|
|
+ for (i = 0; i < swap_header->info.nr_badpages; i++) {
|
|
|
+ int page_nr = swap_header->info.badpages[i];
|
|
|
+ if (page_nr <= 0 || page_nr >= swap_header->info.last_page)
|
|
|
error = -EINVAL;
|
|
|
else
|
|
|
- p->swap_map[page] = SWAP_MAP_BAD;
|
|
|
+ p->swap_map[page_nr] = SWAP_MAP_BAD;
|
|
|
}
|
|
|
nr_good_pages = swap_header->info.last_page -
|
|
|
swap_header->info.nr_badpages -
|
|
|
1 /* header page */;
|
|
|
- if (error)
|
|
|
+ if (error)
|
|
|
goto bad_swap;
|
|
|
}
|
|
|
|