about summary refs log tree commit diff
path: root/elf
diff options
context:
space:
mode:
Diffstat (limited to 'elf')
-rw-r--r--elf/ldconfig.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/elf/ldconfig.c b/elf/ldconfig.c
index 2a24a17799..444dc73750 100644
--- a/elf/ldconfig.c
+++ b/elf/ldconfig.c
@@ -787,23 +787,16 @@ search_dir (const struct dir_entry *entry)
 	  continue;
 	}
 
-      if (real_name != real_file_name)
-	free (real_name);
-
-      /* A link may just point to itself.  */
+      /* Links will just point to itself.  */
       if (is_link)
 	{
-	  /* If the path the link points to isn't its soname, we treat
-	     it as a normal file.  */
-	  if (strcmp (basename (real_name), soname) != 0)
-	    is_link = 0;
-	  else
-	    {
-	      free (soname);
-	      soname = xstrdup (direntry->d_name);
-	    }
+	  free (soname);
+	  soname = xstrdup (direntry->d_name);
 	}
 
+      if (real_name != real_file_name)
+	free (real_name);
+
       if (flag == FLAG_ELF
 	  && (entry->flag == FLAG_ELF_LIBC5
 	      || entry->flag == FLAG_ELF_LIBC6))