git: 06fa889365b5 - stable/14 - rtld: symbolic and deepbind are equivalent for the refobj
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 30 Apr 2025 03:13:54 UTC
The branch stable/14 has been updated by kib:
URL: https://cgit.FreeBSD.org/src/commit/?id=06fa889365b51b4b06d26bf60f8d5b89f340b8b1
commit 06fa889365b51b4b06d26bf60f8d5b89f340b8b1
Author: Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2025-04-19 10:26:58 +0000
Commit: Konstantin Belousov <kib@FreeBSD.org>
CommitDate: 2025-04-30 03:13:12 +0000
rtld: symbolic and deepbind are equivalent for the refobj
(cherry picked from commit d0ab6abbf5318fa09df1b145198d543c60f0685b)
---
libexec/rtld-elf/rtld.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/libexec/rtld-elf/rtld.c b/libexec/rtld-elf/rtld.c
index cc504666c649..6375867d1db1 100644
--- a/libexec/rtld-elf/rtld.c
+++ b/libexec/rtld-elf/rtld.c
@@ -4624,12 +4624,13 @@ symlook_default(SymLook *req, const Obj_Entry *refobj)
*/
res = symlook_obj(&req1, refobj);
if (res == 0 && (refobj->symbolic ||
- ELF_ST_VISIBILITY(req1.sym_out->st_other) == STV_PROTECTED)) {
+ ELF_ST_VISIBILITY(req1.sym_out->st_other) == STV_PROTECTED ||
+ refobj->deepbind)) {
req->sym_out = req1.sym_out;
req->defobj_out = req1.defobj_out;
assert(req->defobj_out != NULL);
}
- if (refobj->symbolic || req->defobj_out != NULL)
+ if (refobj->symbolic || req->defobj_out != NULL || refobj->deepbind)
donelist_check(&donelist, refobj);
if (!refobj->deepbind)