From 6db52fbb272979bdcd5d5dd7ab187e1893eda9e3 Mon Sep 17 00:00:00 2001 From: Petr Baudis Date: Mon, 22 Nov 2010 12:47:57 -0500 Subject: 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 --- elf/ldconfig.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) (limited to 'elf') 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; -- cgit v1.2.3