am f3463db7: Merge "Check if strtab exists before using it"
* commit 'f3463db7eb37cb7d9dd5e32dfb5b2bd24f808fb3': Check if strtab exists before using it
This commit is contained in:
commit
be98337273
@ -2842,17 +2842,6 @@ bool soinfo::prelink_image() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// second pass - parse entries relying on strtab
|
|
||||||
for (ElfW(Dyn)* d = dynamic; d->d_tag != DT_NULL; ++d) {
|
|
||||||
if (d->d_tag == DT_SONAME) {
|
|
||||||
soname_ = get_string(d->d_un.d_val);
|
|
||||||
#if defined(__work_around_b_19059885__)
|
|
||||||
strlcpy(old_name_, soname_, sizeof(old_name_));
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DEBUG("si->base = %p, si->strtab = %p, si->symtab = %p",
|
DEBUG("si->base = %p, si->strtab = %p, si->symtab = %p",
|
||||||
reinterpret_cast<void*>(base), strtab_, symtab_);
|
reinterpret_cast<void*>(base), strtab_, symtab_);
|
||||||
|
|
||||||
@ -2875,6 +2864,17 @@ bool soinfo::prelink_image() {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// second pass - parse entries relying on strtab
|
||||||
|
for (ElfW(Dyn)* d = dynamic; d->d_tag != DT_NULL; ++d) {
|
||||||
|
if (d->d_tag == DT_SONAME) {
|
||||||
|
soname_ = get_string(d->d_un.d_val);
|
||||||
|
#if defined(__work_around_b_19059885__)
|
||||||
|
strlcpy(old_name_, soname_, sizeof(old_name_));
|
||||||
|
#endif
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Before M release linker was using basename in place of soname.
|
// Before M release linker was using basename in place of soname.
|
||||||
// In the case when dt_soname is absent some apps stop working
|
// In the case when dt_soname is absent some apps stop working
|
||||||
// because they can't find dt_needed library by soname.
|
// because they can't find dt_needed library by soname.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user