svn commit: r274531 - in stable/10: lib/libc/gen libexec/rtld-elf

Ed Maste emaste at FreeBSD.org
Fri Nov 14 21:52:32 UTC 2014


Author: emaste
Date: Fri Nov 14 21:52:31 2014
New Revision: 274531
URL: https://svnweb.freebsd.org/changeset/base/274531

Log:
  Always return pathname in dl_iterate_phdr's dlpi_name, as Linux does
  
  Linux LD_ITERATE_PHDR(3):
      The dlpi_name field is a null-terminated string giving the
      pathname from which the shared object was loaded.
  
  That functionality is much more useful than returning just the short
  name.
  
  Update dl_iterate_phdr(3) to follow r272842
  
  MFC of r272842 and r272848

Modified:
  stable/10/lib/libc/gen/dl_iterate_phdr.3
  stable/10/libexec/rtld-elf/rtld.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/lib/libc/gen/dl_iterate_phdr.3
==============================================================================
--- stable/10/lib/libc/gen/dl_iterate_phdr.3	Fri Nov 14 21:12:28 2014	(r274530)
+++ stable/10/lib/libc/gen/dl_iterate_phdr.3	Fri Nov 14 21:52:31 2014	(r274531)
@@ -15,7 +15,7 @@
 .\"
 .\"   $OpenBSD: dl_iterate_phdr.3,v 1.3 2007/05/31 19:19:48 jmc Exp $
 .\" $FreeBSD$
-.Dd February 15, 2012
+.Dd October 9, 2014
 .Dt DL_ITERATE_PHDR 3
 .Os
 .Sh NAME
@@ -68,7 +68,7 @@ have the following meaning:
 The base address at which the object is mapped into the address
 space of the calling process.
 .It Fa dlpi_name
-The name of the ELF object.
+The pathname of the ELF object.
 .It Fa dlpi_phdr
 A pointer to the object's program headers.
 .It Fa dlpi_phnum

Modified: stable/10/libexec/rtld-elf/rtld.c
==============================================================================
--- stable/10/libexec/rtld-elf/rtld.c	Fri Nov 14 21:12:28 2014	(r274530)
+++ stable/10/libexec/rtld-elf/rtld.c	Fri Nov 14 21:52:31 2014	(r274531)
@@ -3252,8 +3252,7 @@ rtld_fill_dl_phdr_info(const Obj_Entry *
 {
 
 	phdr_info->dlpi_addr = (Elf_Addr)obj->relocbase;
-	phdr_info->dlpi_name = STAILQ_FIRST(&obj->names) ?
-	    STAILQ_FIRST(&obj->names)->name : obj->path;
+	phdr_info->dlpi_name = obj->path;
 	phdr_info->dlpi_phdr = obj->phdr;
 	phdr_info->dlpi_phnum = obj->phsize / sizeof(obj->phdr[0]);
 	phdr_info->dlpi_tls_modid = obj->tlsindex;


More information about the svn-src-all mailing list