diff options
author | Petr Baudis <pasky@suse.cz> | 2010-11-22 12:47:57 -0500 |
---|---|---|
committer | Andreas Schwab <schwab@redhat.com> | 2010-12-01 15:35:20 +0100 |
commit | 647691a92f668eb3882ad8fd97b3766a52de61df (patch) | |
tree | e05ce86860484a2684e6e762176d73a1c9b03a60 | |
parent | d1d5508011bfbd594f4d1c61d20b0ab9fb1bdc1d (diff) | |
download | glibc-647691a92f668eb3882ad8fd97b3766a52de61df.zip glibc-647691a92f668eb3882ad8fd97b3766a52de61df.tar.gz glibc-647691a92f668eb3882ad8fd97b3766a52de61df.tar.bz2 |
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
(cherry picked from commit 6db52fbb272979bdcd5d5dd7ab187e1893eda9e3)
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | elf/ldconfig.c | 12 |
2 files changed, 10 insertions, 8 deletions
@@ -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-05-31 Petr Baudis <pasky@suse.cz> [BZ #10085] diff --git a/elf/ldconfig.c b/elf/ldconfig.c index b4af31e..b82ca8e 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; |