This is the mail archive of the glibc-bugs@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug libc/344] New: Bogus dl test: elf/tst-dlopenrpath.c and elf/tst-dlopenrpathmod.c


Either elf/tst-dlopenrpath.c is bogus or open_path in elf/dl-load.c is wrong.
open_path has

/* Try to open NAME in one of the directories in *DIRSP.
   Return the fd, or -1.  If successful, fill in *REALNAME
   with the malloc'd full directory name.  If it turns out
   that none of the directories in *DIRSP exists, *DIRSP is
   replaced with (void *) -1, and the old value is free()d
   if MAY_FREE_DIRS is true.  */
                                                                                
static int
open_path (const char *name, size_t namelen, int preloaded,
           struct r_search_path_struct *sps, char **realname,
           struct filebuf *fbp)

So when a DSO has a DT_RPATH which isn't used to locate a DT_NEEDED
entry, that DT_RPATH may be ignored for this DSO later on for any dlopen
calls made from the DSO. elf/tst-dlopenrpathmod.c has

xxxxx          (RPATH)              Library rpath: [$ORIGIN/test-subdir]

If DT_RPATH is searched when loading tst-dlopenrpathmod.so for some reason,
DT_RPATH will be ignored for dlopen calls in tst-dlopenrpathmod.so. I got

couldn't open in-subdir.so from foo

-- 
           Summary: Bogus dl test: elf/tst-dlopenrpath.c and elf/tst-
                    dlopenrpathmod.c
           Product: glibc
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: libc
        AssignedTo: gotom at debian dot or dot jp
        ReportedBy: hjl at lucon dot org
                CC: glibc-bugs at sources dot redhat dot com


http://sources.redhat.com/bugzilla/show_bug.cgi?id=344

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]