(_dl_map_object): DT_RPATH value is relative to DT_STRTAB value.
const char *dirpath,
char **realname)
{
- char buf[strlen (dirpath) + 1 + namelen];
+ char *buf;
const char *p;
int fd;
return -1;
}
+ buf = alloca (strlen (dirpath) + 1 + namelen);
do
{
dirpath = p;
fd = -1;
if (loader && loader->l_info[DT_RPATH])
trypath ((const char *) (loader->l_addr +
- loader->l_info[DT_RPATH]->d_un.d_ptr));
+ loader->l_info[DT_STRTAB]->d_un.d_ptr +
+ loader->l_info[DT_RPATH]->d_un.d_val));
if (fd == -1 && ! _dl_secure)
trypath (getenv ("LD_LIBRARY_PATH"));
if (fd == -1)