coff: Handle massive relocations
commit01102ee8e6a967830bcd6f0134efe8976f473121
authorCyrill Gorcunov <gorcunov@gmail.com>
Sat, 6 Nov 2010 15:38:00 +0000 (6 18:38 +0300)
committerCyrill Gorcunov <gorcunov@gmail.com>
Sat, 6 Nov 2010 15:38:00 +0000 (6 18:38 +0300)
tree5dd150dad1226fd2b6d8ee404903c835649d4600
parent359b63f8976375f071edc33092daea57efa768fb
coff: Handle massive relocations

 In case if relocations number exceed 16bit values
we have to hande such case by a special way, as described
in COFF specification.

 "IMAGE_SCN_LNK_NRELOC_OVFL indicates that the count of
relocations for the section exceeds the 16 bits that are
reserved for it in the section header. If the bit is set
and the NumberOfRelocations field in the section header
is 0xffff, the actual relocation count is stored in the
32-bit VirtualAddress field of the first relocation. It
is an error if IMAGE_SCN_LNK_NRELOC_OVFL is set and
there are fewer than 0xffff relocations in the section."

[ BR3092924 ]

Reported-by: Robert Yates
Investigated-by: nasm64developer
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
output/outcoff.c