mtrr: fix mtrr index out of range for vcnt > Nmtrr

This commit is contained in:
cinap_lenrek 2013-07-05 00:55:48 +02:00
parent fa4448b2d5
commit 6d24cced8f

View file

@ -290,6 +290,8 @@ mtrr(uvlong base, uvlong size, char *tstr)
qlock(&mtrrlk);
slot = -1;
vcnt = cap & Capvcnt;
if(vcnt > Nmtrr)
vcnt = Nmtrr;
for(i = 0; i < vcnt; i++){
mtrrget(&mtrr, i);
mok = mtrrdec(&mtrr, &mp, &msize, &mtype);
@ -330,6 +332,8 @@ mtrrprint(char *buf, long bufsize)
n += snprint(buf+n, bufsize-n, "cache default %s\n",
type2str(def & Deftype));
vcnt = cap & Capvcnt;
if(vcnt > Nmtrr)
vcnt = Nmtrr;
for(i = 0; i < vcnt; i++){
mtrrget(&mtrr, i);
if (mtrrdec(&mtrr, &base, &size, &type))