Allow aux_cache_file open()ing to fail silently even in the chroot mode.

The aux_cache fix of bug 11149 introduced a new bug - normally,
ldconfig -r never cares if the auxiliary cache is not available and
that is not a fatal problem, however this is not the case in case
of ldconfig -r when executed as non-root. In that case, ldconfig -r
fails hard unless var/cache/ldconfig/ exists within the chroot. This
patch fixes that.

Conflicts:

	ChangeLog
This commit is contained in:
Petr Baudis 2010-11-22 12:47:57 -05:00 committed by Ulrich Drepper
parent eaca75697f
commit 6db52fbb27
2 changed files with 10 additions and 8 deletions

View File

@ -1,3 +1,9 @@
2010-05-31 Petr Baudis <pasky@suse.cz>
[BZ #11149]
* elf/ldconfig.c (main): Allow aux_cache_file open()ing to fail
silently even in the chroot mode.
2010-11-22 Ulrich Drepper <drepper@gmail.com>
* nis/nss_compat/compat-initgroups.c (internal_getgrent_r): Optimize

View File

@ -1359,14 +1359,9 @@ main (int argc, char **argv)
const 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);
}
aux_cache_file = chroot_canon (opt_chroot, aux_cache_file);
if (! opt_ignore_aux_cache)
if (! opt_ignore_aux_cache && aux_cache_file)
load_aux_cache (aux_cache_file);
else
init_aux_cache ();
@ -1376,7 +1371,8 @@ main (int argc, char **argv)
if (opt_build_cache)
{
save_cache (cache_file);
save_aux_cache (aux_cache_file);
if (aux_cache_file)
save_aux_cache (aux_cache_file);
}
return 0;