diff options
author | Mike Frysinger <vapier@gentoo.org> | 2006-01-19 10:38:25 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2006-01-19 10:38:25 +0000 |
commit | e96b985e27df3779617b6747db05d4b0526d84ba (patch) | |
tree | f9cdd0953230783e1be3614451d286c1ec59bfbf | |
parent | f2a380e14cec0aefd3375a5977b08aeb22029556 (diff) |
Frank Mehnert writes:
in ldso/ldso.c, function _dl_get_ready_to_run, the variable app_tpnt_tmp
is not initialized. The function _dl_parse_dynamic_info() initializes
some of their members but not all. For example, if the binary does _not_
contain a DT_TEXTREL record, it is possible that the condition
if (app_tpnt->dynamic_info[DT_TEXTREL])
is nevertheless true and we therefore enter the following code path
(ldso.c:270).
My suggestion is to add
_dl_memset(&app_tpnt_rel, 0, sizeof(app_tpnt_rel));
just behind the variable declarations of _dl_get_ready_to_run().
-rw-r--r-- | ldso/ldso/ldso.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/ldso/ldso/ldso.c b/ldso/ldso/ldso.c index f7def0fd1..2a8c2c560 100644 --- a/ldso/ldso/ldso.c +++ b/ldso/ldso/ldso.c @@ -139,6 +139,7 @@ void _dl_get_ready_to_run(struct elf_resolve *tpnt, unsigned long load_addr, * setup so we can use _dl_dprintf() to print debug noise * instead of the SEND_STDERR macros used in dl-startup.c */ + _dl_memset(&app_tpnt_rel, 0x00, sizeof(app_tpnt_rel)); /* Store the page size for later use */ _dl_pagesize = (auxvt[AT_PAGESZ].a_un.a_val) ? (size_t) auxvt[AT_PAGESZ].a_un.a_val : PAGE_SIZE; |