浏览代码

Kernel: Refuse to set overflowy resolution values in BXVGADevice

Andreas Kling 5 年之前
父节点
当前提交
fa40b725f9
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      Kernel/Devices/BXVGADevice.cpp

+ 4 - 0
Kernel/Devices/BXVGADevice.cpp

@@ -24,6 +24,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+#include <AK/Checked.h>
 #include <Kernel/Devices/BXVGADevice.h>
 #include <Kernel/PCI/Access.h>
 #include <Kernel/Process.h>
@@ -124,6 +125,9 @@ bool BXVGADevice::test_resolution(int width, int height)
 }
 bool BXVGADevice::set_resolution(int width, int height)
 {
+    if (Checked<int>::multiplication_would_overflow(width, height, sizeof(u32)))
+        return false;
+
     if (!test_resolution(width, height))
         return false;