diff options
author | Christopher Faylor <me+cygwin@cgf.cx> | 2006-10-29 17:14:37 +0000 |
---|---|---|
committer | Christopher Faylor <me+cygwin@cgf.cx> | 2006-10-29 17:14:37 +0000 |
commit | 4e9862571357457fa20df6fb0650807d5fb5ea94 (patch) | |
tree | a3a46f71a5b733bd7e2c3807cc02470cbae83a83 /ld | |
parent | c9b8f8fd741c8d72f660386fa55399096851eaa7 (diff) | |
download | gdb-4e9862571357457fa20df6fb0650807d5fb5ea94.zip gdb-4e9862571357457fa20df6fb0650807d5fb5ea94.tar.gz gdb-4e9862571357457fa20df6fb0650807d5fb5ea94.tar.bz2 |
* pe-dll.c (make_singleton_name_thunk): Re-add the NULL terminator.
Diffstat (limited to 'ld')
-rw-r--r-- | ld/ChangeLog | 4 | ||||
-rw-r--r-- | ld/pe-dll.c | 9 |
2 files changed, 9 insertions, 4 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 8b69b36..e3864b7 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,7 @@ +2006-10-29 Pedro Alves <pedro_alves@portugalmail.pt> + + * pe-dll.c (make_singleton_name_thunk): Re-add the NULL terminator. + 2006-10-27 Alan Modra <amodra@bigpond.net.au> * ldlang.c (lang_map): Don't say SEC_LINKER_CREATED and SEC_KEEP diff --git a/ld/pe-dll.c b/ld/pe-dll.c index a308c94..c264622 100644 --- a/ld/pe-dll.c +++ b/ld/pe-dll.c @@ -2080,16 +2080,17 @@ make_singleton_name_thunk (const char *import, bfd *parent) quick_symbol (abfd, U ("_nm_thnk_"), import, "", id4, BSF_GLOBAL, 0); quick_symbol (abfd, U ("_nm_"), import, "", UNDSEC, BSF_GLOBAL, 0); - bfd_set_section_size (abfd, id4, PE_IDATA4_SIZE); - d4 = xmalloc (PE_IDATA4_SIZE); + /* We need space for the real thunk and for the null terminator. */ + bfd_set_section_size (abfd, id4, PE_IDATA4_SIZE * 2); + d4 = xmalloc (PE_IDATA4_SIZE * 2); id4->contents = d4; - memset (d4, 0, PE_IDATA4_SIZE); + memset (d4, 0, PE_IDATA4_SIZE * 2); quick_reloc (abfd, 0, BFD_RELOC_RVA, 2); save_relocs (id4); bfd_set_symtab (abfd, symtab, symptr); - bfd_set_section_contents (abfd, id4, d4, 0, PE_IDATA4_SIZE); + bfd_set_section_contents (abfd, id4, d4, 0, PE_IDATA4_SIZE * 2); bfd_make_readable (abfd); return abfd; |