diff options
Diffstat (limited to 'ltrace-elf.c')
-rw-r--r-- | ltrace-elf.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/ltrace-elf.c b/ltrace-elf.c index bdb6220..f4a58a5 100644 --- a/ltrace-elf.c +++ b/ltrace-elf.c @@ -63,13 +63,16 @@ arch_elf_destroy(struct ltelf *lte) } #endif -static int +int default_elf_add_plt_entry(struct Process *proc, struct ltelf *lte, const char *a_name, GElf_Rela *rela, size_t ndx, struct library_symbol **ret) { char *name = strdup(a_name); if (name == NULL) { + fail_message: + fprintf(stderr, "Couldn't create symbol for PLT entry: %s\n", + strerror(errno)); fail: free(name); return -1; @@ -79,7 +82,7 @@ default_elf_add_plt_entry(struct Process *proc, struct ltelf *lte, struct library_symbol *libsym = malloc(sizeof(*libsym)); if (libsym == NULL) - goto fail; + goto fail_message; /* XXX The double cast should be removed when * arch_addr_t becomes integral type. */ |