Bug 3239 - The "info" declared in the function _dl_start of the rtld.c is not initialized
Summary: The "info" declared in the function _dl_start of the rtld.c is not initialized
Status: RESOLVED INVALID
Alias: None
Product: glibc
Classification: Unclassified
Component: admin (show other bugs)
Version: 2.4
: P2 normal
Target Milestone: ---
Assignee: Roland McGrath
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-09-21 13:59 UTC by Xi Jian Zhu
Modified: 2012-01-05 08:25 UTC (History)
2 users (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Xi Jian Zhu 2006-09-21 13:59:54 UTC
My project is to load an ELF executable file by using dynamic loader ld.so. 
After I mapped the executable and the loader in memory.  I start the loader 
program. But, I got the error message as below,

Inconsistency detected by ld.so: rtld.c: 306: _dl_start_final: Assertion `info-
>l.l_tls_modid == 0' failed!

The info is declared in the function _dl_start. The info->l.l_tls_modid has 
never been assigned to any value after that (USE_TLS is defined, USE_THREAD 
and DONT_USE_BOOTSTRAP_MAP is not defined). When loader ran to line 306--assert
(info->l.l_tls_modid), It failed. Obviously, it’s because the info is not 
initialized after declaration. Now I have to clean the memory above the stack-
top before I start the loader program to get it works.
Comment 1 Andreas Jaeger 2012-01-05 08:25:00 UTC
You're doing something outside the spec, there's nothing we can help with.