aboutsummaryrefslogtreecommitdiff
path: root/elf/dl-load.c
diff options
context:
space:
mode:
Diffstat (limited to 'elf/dl-load.c')
-rw-r--r--elf/dl-load.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/elf/dl-load.c b/elf/dl-load.c
index c47ae09..ac8e217 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -1592,15 +1592,13 @@ open_verify (const char *name, int fd,
errval = errno;
errstring = (errval == 0
? N_("file too short") : N_("cannot read file data"));
- lose:
+ lose:;
+ struct dl_exception exception;
+ _dl_exception_create (&exception, name, errstring);
if (free_name)
- {
- char *realname = (char *) name;
- name = strdupa (realname);
- free (realname);
- }
+ free ((char *) name);
__close_nocancel (fd);
- _dl_signal_error (errval, name, NULL, errstring);
+ _dl_signal_exception (errval, &exception, NULL);
}
/* See whether the ELF header is what we expect. */