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

Fix ICONDIR buffer overflow
This commit is contained in:
Rémi Verschelde 2022-11-14 11:08:22 +01:00
commit 1b3ed1b3ba
No known key found for this signature in database
GPG Key ID: C3336907360768E1

View File

@ -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.