diff options
author | Ulrich Drepper <drepper@redhat.com> | 2010-04-05 11:26:43 -0700 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2010-04-05 11:26:43 -0700 |
commit | 4bc2bcba67e870778fb9397f29435ee1b66bebf3 (patch) | |
tree | 4a02236c6b246b5a9d9d4deacb07f8f093a26649 /elf/ldconfig.c | |
parent | 247fdc8ee68cf49cd808becce56b2e923b4f776b (diff) | |
download | glibc-4bc2bcba67e870778fb9397f29435ee1b66bebf3.tar.gz |
Fix aux cache handling in ldconfig with chroot.
Diffstat (limited to 'elf/ldconfig.c')
-rw-r--r-- | elf/ldconfig.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/elf/ldconfig.c b/elf/ldconfig.c index efa67253f5..b9f1cc2d1b 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; |