diff --git a/wrestool/extract.c b/wrestool/extract.c index a203d04..8192a1f 100644 --- a/wrestool/extract.c +++ b/wrestool/extract.c @@ -237,13 +237,15 @@ extract_group_icon_cursor_resource(WinLibrary *fi, WinResource *wr, char *lang, fileicondir->entries[c-skipped].dib_offset = offset; /* transfer resource into file memory */ + if (size > icondir->entries[c].bytes_in_res) + size = icondir->entries[c].bytes_in_res; if (is_icon) { - memcpy(&memory[offset], data, icondir->entries[c].bytes_in_res); + memcpy(&memory[offset], data, size); } else { fileicondir->entries[c-skipped].hotspot_x = ((uint16_t *) data)[0]; fileicondir->entries[c-skipped].hotspot_y = ((uint16_t *) data)[1]; memcpy(&memory[offset], data+sizeof(uint16_t)*2, - icondir->entries[c].bytes_in_res-sizeof(uint16_t)*2); + size-sizeof(uint16_t)*2); offset -= sizeof(uint16_t)*2; }