Fix aux cache handling in ldconfig with chroot.

This commit is contained in:
Ulrich Drepper 2010-04-05 11:26:43 -07:00
parent 247fdc8ee6
commit 4bc2bcba67
2 changed files with 20 additions and 7 deletions

View File

@ -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> 2010-04-04 Ulrich Drepper <drepper@redhat.com>
[BZ #11043] [BZ #11043]

View File

@ -1305,11 +1305,9 @@ main (int argc, char **argv)
p ? (*p = '\0', cache_file) : "/"); p ? (*p = '\0', cache_file) : "/");
if (canon == NULL) if (canon == NULL)
{ error (EXIT_FAILURE, errno,
error (EXIT_FAILURE, errno, _("Can't open cache file directory %s\n"),
_("Can't open cache file directory %s\n"), p ? cache_file : "/");
p ? cache_file : "/");
}
if (p) if (p)
++p; ++p;
@ -1346,8 +1344,17 @@ main (int argc, char **argv)
add_system_dir (LIBDIR); 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) if (! opt_ignore_aux_cache)
load_aux_cache (_PATH_LDCONFIG_AUX_CACHE); load_aux_cache (aux_cache_file);
else else
init_aux_cache (); init_aux_cache ();
@ -1356,7 +1363,7 @@ main (int argc, char **argv)
if (opt_build_cache) if (opt_build_cache)
{ {
save_cache (cache_file); save_cache (cache_file);
save_aux_cache (_PATH_LDCONFIG_AUX_CACHE); save_aux_cache (aux_cache_file);
} }
return 0; return 0;