aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2010-04-05 11:26:43 -0700
committerPetr Baudis <pasky@ucw.cz>2010-05-12 03:21:13 +0200
commitfbca690a79f9b0232acc0e1d8504d62243bcdbb0 (patch)
tree324ad54322d79ca6a0daf65f079cc25a90be3f11
parented5e4f5aac1d6a4c75d78548255a47881cdfb911 (diff)
downloadglibc-fbca690a79f9b0232acc0e1d8504d62243bcdbb0.tar
glibc-fbca690a79f9b0232acc0e1d8504d62243bcdbb0.tar.gz
glibc-fbca690a79f9b0232acc0e1d8504d62243bcdbb0.tar.bz2
glibc-fbca690a79f9b0232acc0e1d8504d62243bcdbb0.zip
Fix aux cache handling in ldconfig with chroot.
(cherry picked from commit 4bc2bcba67e870778fb9397f29435ee1b66bebf3)
-rw-r--r--ChangeLog6
-rw-r--r--elf/ldconfig.c21
2 files changed, 20 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index 2941812648..26c4e2f245 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2010-04-05 Ulrich Drepper <drepper@redhat.com>
+
+ [BZ #11149]
+ * elf/ldconfig.c (main): Respect chroot setting when looking for
+ the aux cache.
+
2010-04-04 Ulrich Drepper <drepper@redhat.com>
[BZ #11043]
diff --git a/elf/ldconfig.c b/elf/ldconfig.c
index 78a0f0c2a8..76075278c0 100644
--- a/elf/ldconfig.c
+++ b/elf/ldconfig.c
@@ -1305,11 +1305,9 @@ main (int argc, char **argv)
p ? (*p = '\0', cache_file) : "/");
if (canon == NULL)
- {
- error (EXIT_FAILURE, errno,
- _("Can't open cache file directory %s\n"),
- p ? cache_file : "/");
- }
+ error (EXIT_FAILURE, errno,
+ _("Can't open cache file directory %s\n"),
+ p ? cache_file : "/");
if (p)
++p;
@@ -1346,8 +1344,17 @@ main (int argc, char **argv)
add_system_dir (LIBDIR);
}
+ char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE;
+ if (opt_chroot)
+ {
+ aux_cache_file = chroot_canon (opt_chroot, aux_cache_file);
+ if (aux_cache_file == NULL)
+ error (EXIT_FAILURE, errno, _("Can't open cache file %s\n"),
+ _PATH_LDCONFIG_AUX_CACHE);
+ }
+
if (! opt_ignore_aux_cache)
- load_aux_cache (_PATH_LDCONFIG_AUX_CACHE);
+ load_aux_cache (aux_cache_file);
else
init_aux_cache ();
@@ -1356,7 +1363,7 @@ main (int argc, char **argv)
if (opt_build_cache)
{
save_cache (cache_file);
- save_aux_cache (_PATH_LDCONFIG_AUX_CACHE);
+ save_aux_cache (aux_cache_file);
}
return 0;