X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=mm%2Fswapfile.c;h=c1a0f3dea8b5beb197b57619e8153f7d17483f8a;hb=a0b524450b5ed8541ef596a4943be97412936df3;hp=58877312cf6b94b74da00b8913bf8db64d56ab26;hpb=92243b6fc8fcb16bf401b055f7a0ba79f70a4115;p=firefly-linux-kernel-4.4.55.git diff --git a/mm/swapfile.c b/mm/swapfile.c index 58877312cf6b..c1a0f3dea8b5 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -2225,6 +2225,8 @@ static unsigned long read_swap_header(struct swap_info_struct *p, swab32s(&swap_header->info.version); swab32s(&swap_header->info.last_page); 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++) swab32s(&swap_header->info.badpages[i]); }