2009-11-27 Tristan Gingold <gingold@adacore.com>
* pe-dll.c (pe_implied_import_dll): Return early if there is no export entries.
This commit is contained in:
parent
3b0dd6acb3
commit
d0069cab2d
|
@ -1,3 +1,8 @@
|
||||||
|
2009-11-27 Tristan Gingold <gingold@adacore.com>
|
||||||
|
|
||||||
|
* pe-dll.c (pe_implied_import_dll): Return early if there is no
|
||||||
|
export entries.
|
||||||
|
|
||||||
2009-11-26 Nick Clifton <nickc@redhat.com>
|
2009-11-26 Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
PR ld/10956
|
PR ld/10956
|
||||||
|
|
|
@ -2981,7 +2981,7 @@ pe_implied_import_dll (const char *filename)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get pe_header, optional header and numbers of export entries. */
|
/* Get pe_header, optional header and numbers of directory entries. */
|
||||||
pe_header_offset = pe_get32 (dll, 0x3c);
|
pe_header_offset = pe_get32 (dll, 0x3c);
|
||||||
opthdr_ofs = pe_header_offset + 4 + 20;
|
opthdr_ofs = pe_header_offset + 4 + 20;
|
||||||
#ifdef pe_use_x86_64
|
#ifdef pe_use_x86_64
|
||||||
|
@ -2990,7 +2990,8 @@ pe_implied_import_dll (const char *filename)
|
||||||
num_entries = pe_get32 (dll, opthdr_ofs + 92);
|
num_entries = pe_get32 (dll, opthdr_ofs + 92);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (num_entries < 1) /* No exports. */
|
/* No import or export directory entry. */
|
||||||
|
if (num_entries < 1)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
#ifdef pe_use_x86_64
|
#ifdef pe_use_x86_64
|
||||||
|
@ -3001,6 +3002,10 @@ pe_implied_import_dll (const char *filename)
|
||||||
export_size = pe_get32 (dll, opthdr_ofs + 100);
|
export_size = pe_get32 (dll, opthdr_ofs + 100);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* No export table - nothing to export. */
|
||||||
|
if (export_size == 0)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
nsections = pe_get16 (dll, pe_header_offset + 4 + 2);
|
nsections = pe_get16 (dll, pe_header_offset + 4 + 2);
|
||||||
secptr = (pe_header_offset + 4 + 20 +
|
secptr = (pe_header_offset + 4 + 20 +
|
||||||
pe_get16 (dll, pe_header_offset + 4 + 16));
|
pe_get16 (dll, pe_header_offset + 4 + 16));
|
||||||
|
|
Loading…
Reference in New Issue