about summary refs log tree commit diff
path: root/elf/ldconfig.c
diff options
context:
space:
mode:
Diffstat (limited to 'elf/ldconfig.c')
-rw-r--r--elf/ldconfig.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/elf/ldconfig.c b/elf/ldconfig.c
index ce4d9298cc..9202567a10 100644
--- a/elf/ldconfig.c
+++ b/elf/ldconfig.c
@@ -525,7 +525,7 @@ search_dir (const struct dir_entry *entry)
 
   file_name_len = PATH_MAX;
   file_name = alloca (file_name_len);
-  
+
   dlibs = NULL;
 
   if (opt_verbose)
@@ -570,7 +570,7 @@ search_dir (const struct dir_entry *entry)
 	  file_name_len = len + 1;
 	  file_name = alloca (file_name_len);
 	}
-      sprintf (file_name , "%s/%s", entry->path, direntry->d_name);      
+      sprintf (file_name , "%s/%s", entry->path, direntry->d_name);
 #ifdef _DIRENT_HAVE_D_TYPE
       if (direntry->d_type != DT_UNKNOWN)
 	stat_buf.st_mode = DTTOIF (direntry->d_type);
@@ -734,7 +734,8 @@ parse_conf (const char *filename)
 
   if (file == NULL)
     {
-      error (0, errno, _("Can't open configuration file %s"), filename);
+      error (0, errno, _("Can't open configuration file %s%s%s"),
+	     opt_chroot ?: "", opt_chroot ? "/" : "", filename);
       return;
     }
 
@@ -791,6 +792,12 @@ main (int argc, char **argv)
   /* Chroot first.  */
   if (opt_chroot)
     {
+      /* Normalize the path a bit, we might need it for printing later.  */
+      char *endp = strchr (opt_chroot, '\0');
+      while (endp > opt_chroot + 1 && endp[-1] == '/')
+	--endp;
+      *endp = '\0';
+
       if (chroot (opt_chroot))
 	/* Report failure and exit program.  */
 	error (EXIT_FAILURE, errno, _("Can't chroot to %s"), opt_chroot);