This is the mail archive of the glibc-cvs@sourceware.org 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]

GNU C Library master sources branch master updated. glibc-2.18-403-g246a7c1


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  246a7c1bc2cc021ff4deebc76164bcbcc5a4aa9c (commit)
      from  ad383240ed616c03efb9b583a584e4d15f0f8f5e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=246a7c1bc2cc021ff4deebc76164bcbcc5a4aa9c

commit 246a7c1bc2cc021ff4deebc76164bcbcc5a4aa9c
Author: OndÅ?ej Bílka <neleai@seznam.cz>
Date:   Mon Nov 18 23:42:58 2013 +0100

    Revert b75891075bece24be9fd85618f18af4a2daf7f1c

diff --git a/elf/dl-load.c b/elf/dl-load.c
index bdd33bd..6a73f27 100644
--- a/elf/dl-load.c
+++ b/elf/dl-load.c
@@ -481,19 +481,14 @@ static size_t max_dirnamelen;
 
 static struct r_search_path_elem **
 fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep,
-	      int check_trusted, const char *what, const char *where,
-	      struct link_map *l)
+	      int check_trusted, const char *what, const char *where)
 {
   char *cp;
   size_t nelems = 0;
-  char *to_free;
 
   while ((cp = __strsep (&rpath, sep)) != NULL)
     {
       struct r_search_path_elem *dirp;
-
-      to_free = cp = expand_dynamic_string_token (l, cp);
-
       size_t len = strlen (cp);
 
       /* `strsep' can pass an empty string.  This has to be
@@ -514,10 +509,7 @@ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep,
 
       /* Make sure we don't use untrusted directories if we run SUID.  */
       if (__builtin_expect (check_trusted, 0) && !is_trusted_path (cp, len))
-	{
-	  free (to_free);
-	  continue;
-	}
+	continue;
 
       /* See if this directory is already known.  */
       for (dirp = GL(dl_all_dirs); dirp != NULL; dirp = dirp->next)
@@ -578,7 +570,6 @@ fillin_rpath (char *rpath, struct r_search_path_elem **result, const char *sep,
 	  /* Put it in the result array.  */
 	  result[nelems++] = dirp;
 	}
-      free (to_free);
     }
 
   /* Terminate the array.  */
@@ -634,8 +625,9 @@ decompose_rpath (struct r_search_path_struct *sps,
       while (*inhp != '\0');
     }
 
-  /* Make a writable copy.  */
-  copy = local_strdup (rpath);
+  /* Make a writable copy.  At the same time expand possible dynamic
+     string tokens.  */
+  copy = expand_dynamic_string_token (l, rpath, 1);
   if (copy == NULL)
     {
       errstring = N_("cannot create RUNPATH/RPATH copy");
@@ -668,7 +660,7 @@ decompose_rpath (struct r_search_path_struct *sps,
       _dl_signal_error (ENOMEM, NULL, NULL, errstring);
     }
 
-  fillin_rpath (copy, result, ":", 0, what, where, l);
+  fillin_rpath (copy, result, ":", 0, what, where);
 
   /* Free the copied RPATH string.  `fillin_rpath' make own copies if
      necessary.  */
@@ -716,7 +708,9 @@ _dl_init_paths (const char *llp)
   const char *strp;
   struct r_search_path_elem *pelem, **aelem;
   size_t round_size;
-  struct link_map __attribute__ ((unused)) *l = NULL;
+#ifdef SHARED
+  struct link_map *l;
+#endif
   /* Initialize to please the compiler.  */
   const char *errstring = NULL;
 
@@ -871,7 +865,7 @@ _dl_init_paths (const char *llp)
 
       (void) fillin_rpath (llp_tmp, env_path_list.dirs, ":;",
 			   INTUSE(__libc_enable_secure), "LD_LIBRARY_PATH",
-			   NULL, l);
+			   NULL);
 
       if (env_path_list.dirs[0] == NULL)
 	{

-----------------------------------------------------------------------

Summary of changes:
 elf/dl-load.c |   26 ++++++++++----------------
 1 files changed, 10 insertions(+), 16 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


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