mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
elf: Eliminate alloca in open_verify
With the two-stage approach for exception handling, the name can be freed after it has been copied into the exception, but before it is raised.
This commit is contained in:
parent
bdaf500353
commit
9802c0f2fe
@ -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. */
|
||||
|
Loading…
Reference in New Issue
Block a user