ref: 8424eea8a7422a534117ecc0dca9930e3bf5c588
parent: f91b90bcf8005739fb162ae097b44b3b03ce1870
author: cinap_lenrek <cinap_lenrek@gmx.de>
date: Thu Jul 4 20:55:48 EDT 2013
mtrr: fix mtrr index out of range for vcnt > Nmtrr
--- a/sys/src/9/pc/mtrr.c
+++ b/sys/src/9/pc/mtrr.c
@@ -290,6 +290,8 @@
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 @@
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))
--
⑨