diff options
author | Petr Baudis <pasky@suse.cz> | 2010-11-22 12:47:57 -0500 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2010-11-22 12:47:57 -0500 |
commit | 6db52fbb272979bdcd5d5dd7ab187e1893eda9e3 (patch) | |
tree | e702a7e6080373fe24580e1474df4296bc1b75f1 /elf/ldconfig.c | |
parent | eaca75697fdc5c21195935eca2f0b149a75c0316 (diff) | |
download | glibc-6db52fbb272979bdcd5d5dd7ab187e1893eda9e3.tar.gz |
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
Diffstat (limited to 'elf/ldconfig.c')
-rw-r--r-- | elf/ldconfig.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/elf/ldconfig.c b/elf/ldconfig.c index b4af31e5b5..b82ca8e308 100644 --- a/elf/ldconfig.c +++ b/elf/ldconfig.c @@ -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; |