summaryrefslogtreecommitdiff
path: root/sys/src/9/pc/mtrr.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2013-07-05 00:55:48 +0200
committercinap_lenrek <cinap_lenrek@gmx.de>2013-07-05 00:55:48 +0200
commit6d24cced8ffa8c85ecea680d533d83a1ca48bef1 (patch)
treec3e034d602e0f81839228ea4dff76955f5db3028 /sys/src/9/pc/mtrr.c
parentfa4448b2d54943a71e7315b740d8ac3ca0b16564 (diff)
mtrr: fix mtrr index out of range for vcnt > Nmtrr
Diffstat (limited to 'sys/src/9/pc/mtrr.c')
-rw-r--r--sys/src/9/pc/mtrr.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/src/9/pc/mtrr.c b/sys/src/9/pc/mtrr.c
index dc8e52baa..b40bf0de6 100644
--- a/sys/src/9/pc/mtrr.c
+++ b/sys/src/9/pc/mtrr.c
@@ -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))