Skip COMDAT sections when parsing COFF

Fixes https://code.google.com/p/chromium/issues/detail?id=339889
when building Clang-based ASan on Windows

Change-Id: Ib77d9593636f46827dbb77f087d407ec0f463fc7
This commit is contained in:
Rui Ueyama 2014-02-04 07:56:52 -08:00 committed by Johann
parent 2b7338aca4
commit 25eeac0518

View File

@ -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;
}