加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
CVE-2018-8787.patch 846 Bytes
一键复制 编辑 原始数据 按行查看 历史
--- a/libfreerdp/gdi/graphics.c 2018-08-01 21:27:31.000000000 +0800
+++ b/libfreerdp/gdi/graphics.c 2019-04-04 18:48:18.411000000 +0800
@@ -141,11 +141,19 @@ static BOOL gdi_Bitmap_Decompress(rdpCon
UINT32 SrcSize = length;
UINT32 SrcFormat;
rdpGdi* gdi = context->gdi;
+ UINT32 size = DstWidth * DstHeight;
bitmap->compressed = FALSE;
bitmap->format = gdi->dstFormat;
- bitmap->length = DstWidth * DstHeight * GetBytesPerPixel(bitmap->format);
bitmap->data = (BYTE*) _aligned_malloc(bitmap->length, 16);
+ if ((GetBytesPerPixel(bitmap->format) == 0) ||
+ (DstWidth == 0) || (DstHeight == 0) || (DstWidth > UINT32_MAX / DstHeight) ||
+ (size > (UINT32_MAX / GetBytesPerPixel(bitmap->format))))
+ return FALSE;
+
+ size *= GetBytesPerPixel(bitmap->format);
+ bitmap->length = size;
+
if (!bitmap->data)
return FALSE;
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化