Do not reference z_nodeflib for !objgiven case, thus fixing LD_PRELOAD
for a non-absolute path. PR: bin/171604 MFC after: 3 days
This commit is contained in:
parent
282d6b7f2c
commit
1bcc5f9efe
@ -1429,7 +1429,7 @@ find_library(const char *xname, const Obj_Entry *refobj)
|
||||
{
|
||||
char *pathname;
|
||||
char *name;
|
||||
bool objgiven;
|
||||
bool nodeflib, objgiven;
|
||||
|
||||
objgiven = refobj != NULL;
|
||||
if (strchr(xname, '/') != NULL) { /* Hard coded pathname */
|
||||
@ -1464,6 +1464,7 @@ find_library(const char *xname, const Obj_Entry *refobj)
|
||||
(pathname = search_library_path(name, STANDARD_LIBRARY_PATH)) != NULL)
|
||||
return (pathname);
|
||||
} else {
|
||||
nodeflib = objgiven ? refobj->z_nodeflib : false;
|
||||
if ((objgiven &&
|
||||
(pathname = search_library_path(name, refobj->rpath)) != NULL) ||
|
||||
(objgiven && refobj->runpath == NULL && refobj != obj_main &&
|
||||
@ -1471,9 +1472,8 @@ find_library(const char *xname, const Obj_Entry *refobj)
|
||||
(pathname = search_library_path(name, ld_library_path)) != NULL ||
|
||||
(objgiven &&
|
||||
(pathname = search_library_path(name, refobj->runpath)) != NULL) ||
|
||||
(pathname = search_library_path(name, gethints(refobj->z_nodeflib)))
|
||||
!= NULL ||
|
||||
(objgiven && !refobj->z_nodeflib &&
|
||||
(pathname = search_library_path(name, gethints(nodeflib))) != NULL ||
|
||||
(objgiven && !nodeflib &&
|
||||
(pathname = search_library_path(name, STANDARD_LIBRARY_PATH)) != NULL))
|
||||
return (pathname);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user