我今天在 Flash Player 11 中发现了一个有趣的错误。它也可能存在于其他版本中。我可以用一行代码立即使 Flash 播放器浏览器崩溃,不会抛出任何运行时错误,并且如果启用了调试跟踪,则仅显示一条消息退出:“错误:内存不足”。
构造一个大小为-1的向量。
var vector:Vector.<int> = new Vector.<int>(-1);
噗,你的整个应用程序都放弃了。数组至少会抛出“越界”的运行时错误。这怎么不被抓到呢?由于它未经处理,是否会导致漏洞利用?
还有人遇到过这种情况吗? 我在11.4.31.110和11.2.202.235版本中测试过
最佳答案
可能是因为构造函数需要一个无符号整数(仅限正数)。
将 -1 转换为 unsigned int 会产生 4,294,967,295,这将使内存不足错误更有意义。提交错误报告可能是有意义的。否则,不要这样做:)
关于actionscript-3 - 大小为 -1 的向量会导致 Flash 播放器崩溃且没有错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12904201/