Jelajahi Sumber

small dynamic linker module search fix

libraries loaded more than once by pathname should not get shortnames
that would cause them to later be used to satisfy non-pathname load
requests.
Rich Felker 12 tahun lalu
induk
melakukan
5f88c0edd5
1 mengubah file dengan 2 tambahan dan 1 penghapusan
  1. 2 1
      src/ldso/dynlink.c

+ 2 - 1
src/ldso/dynlink.c

@@ -483,7 +483,8 @@ static struct dso *load_library(const char *name)
 			/* If this library was previously loaded with a
 			 * pathname but a search found the same inode,
 			 * setup its shortname so it can be found by name. */
-			if (!p->shortname) p->shortname = strrchr(p->name, '/')+1;
+			if (!p->shortname && pathname != name)
+				p->shortname = strrchr(p->name, '/')+1;
 			close(fd);
 			p->refcnt++;
 			return p;