diff --git a/build/make/obj_int_extract.c b/build/make/obj_int_extract.c index 8c169577cfac0b180c1af93e9f29397665275e76..819ce9d587b0e7e73af5c95b5d73a67742ec2981 100644 --- a/build/make/obj_int_extract.c +++ b/build/make/obj_int_extract.c @@ -666,7 +666,11 @@ int parse_coff(uint8_t *buf, size_t sz) { } strcpy(sectionlist[i], sectionname); - if (!strcmp(sectionname, ".rdata")) sectionrawdata_ptr = get_le32(ptr + 20); + // check if it's .rdata and is not a COMDAT section. + if (!strcmp(sectionname, ".rdata") && + (get_le32(ptr + 36) & 0x1000) == 0) { + sectionrawdata_ptr = get_le32(ptr + 20); + } ptr += 40; }