浏览代码

Merge pull request #68631 from pkdawson/fix-icondir-buffer-overflow

Fix ICONDIR buffer overflow
Rémi Verschelde 2 年之前
父节点
当前提交
1b3ed1b3ba
共有 1 个文件被更改,包括 1 次插入1 次删除
  1. 1 1
      platform/windows/display_server_windows.cpp

+ 1 - 1
platform/windows/display_server_windows.cpp

@@ -1892,7 +1892,7 @@ void DisplayServerWindows::set_native_icon(const String &p_filename) {
 	pos += sizeof(WORD);
 	f->seek(pos);
 
-	icon_dir = (ICONDIR *)memrealloc(icon_dir, 3 * sizeof(WORD) + icon_dir->idCount * sizeof(ICONDIRENTRY));
+	icon_dir = (ICONDIR *)memrealloc(icon_dir, sizeof(ICONDIR) - sizeof(ICONDIRENTRY) + icon_dir->idCount * sizeof(ICONDIRENTRY));
 	f->get_buffer((uint8_t *)&icon_dir->idEntries[0], icon_dir->idCount * sizeof(ICONDIRENTRY));
 
 	int small_icon_index = -1; // Select 16x16 with largest color count.