shithub: riscv

Download patch

ref: 6d24cced8ffa8c85ecea680d533d83a1ca48bef1
parent: fa4448b2d54943a71e7315b740d8ac3ca0b16564
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))
--