27 lines
1.4 KiB
Diff
27 lines
1.4 KiB
Diff
--- a/src/app/virtualbox/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp
|
|
+++ b/src/app/virtualbox/src/VBox/Devices/Graphics/DevVGA_VBVA.cpp
|
|
@@ -2249,12 +2249,23 @@
|
|
|
|
const uint64_t u64ScreenSize = (uint64_t)screen.u32LineSize * screen.u32Height;
|
|
|
|
+ if (!( screen.u32StartOffset <= pView->u32ViewSize
|
|
+ && u64ScreenSize <= pView->u32MaxScreenSize
|
|
+ && screen.u32StartOffset <= pView->u32ViewSize - (uint32_t)u64ScreenSize))
|
|
+ {
|
|
+ RTLogPrintf("%s - assertion failed - u32StartOffset=%#x u32ViewSize=%#x u64ScreenSize=%#RX64 u32MaxScreenSize=%#x",
|
|
+ __func__, screen.u32StartOffset, pView->u32ViewSize, u64ScreenSize, pView->u32MaxScreenSize);
|
|
+#if 0
|
|
ASSERT_GUEST_LOGREL_MSG_RETURN( screen.u32StartOffset <= pView->u32ViewSize
|
|
&& u64ScreenSize <= pView->u32MaxScreenSize
|
|
&& screen.u32StartOffset <= pView->u32ViewSize - (uint32_t)u64ScreenSize,
|
|
("u32StartOffset=%#x u32ViewSize=%#x u64ScreenSize=%#RX64 u32MaxScreenSize=%#x\n",
|
|
screen.u32StartOffset, pView->u32ViewSize, u64ScreenSize, pView->u32MaxScreenSize),
|
|
VERR_INVALID_PARAMETER);
|
|
+#endif
|
|
+ return VERR_INVALID_PARAMETER;
|
|
+ }
|
|
+
|
|
RT_UNTRUSTED_VALIDATED_FENCE();
|
|
|
|
/*
|