From 6db52fbb272979bdcd5d5dd7ab187e1893eda9e3 Mon Sep 17 00:00:00 2001 From: Petr Baudis Date: Mon, 22 Nov 2010 12:47:57 -0500 Subject: [PATCH] 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 --- ChangeLog | 6 ++++++ elf/ldconfig.c | 12 ++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index daf74ddfc0..4f4b03c9b8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2010-05-31 Petr Baudis + + [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 * nis/nss_compat/compat-initgroups.c (internal_getgrent_r): Optimize 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; -- 2.11.4.GIT