Open youkaichao opened 6 years ago
sys_setconsole 函数中没有对pos的范围进行检测,导致系统可以被恶意程序攻击,通过设置pos, ch, color的值达到写整个内存的目的。
建议修改代码,加入范围检测。
另外,我想知道屏幕每行能显示的字符和能显示的行数是怎么确定的?是写死的吗?
问题2:屏幕的尺寸为25x80,目前我没有在代码中找到可以设置屏幕大小的位置。原版xv6代码给出的console.c中默认了上述了屏幕大小的尺寸,所有的输出代码都是基于这个大小编写的。 问题1:我之后会增加一下范围检测的代码。
查询资料知,80x25的color text mode 是默认的文本模式
sys_setconsole 函数中没有对pos的范围进行检测,导致系统可以被恶意程序攻击,通过设置pos, ch, color的值达到写整个内存的目的。
建议修改代码,加入范围检测。
另外,我想知道屏幕每行能显示的字符和能显示的行数是怎么确定的?是写死的吗?