diff options
author | Petr Baudis <pasky@suse.cz> | 2010-11-22 12:47:57 -0500 |
---|---|---|
committer | Petr Baudis <pasky@suse.cz> | 2010-11-30 03:24:32 +0100 |
commit | 977bbf5c1869f25d013aa530e7a1a222f6f547ff (patch) | |
tree | 7929c2fba371fb44fa0b802a2c3ea48aa1322cfa | |
parent | 491e94705bce68a32ce9ddbf4eefd17c5814c1fb (diff) | |
download | glibc-977bbf5c1869f25d013aa530e7a1a222f6f547ff.tar.gz glibc-977bbf5c1869f25d013aa530e7a1a222f6f547ff.tar.xz glibc-977bbf5c1869f25d013aa530e7a1a222f6f547ff.zip |
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
diff --git a/ChangeLog b/ChangeLog index 54f9d041b3..49dcad65c2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -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 6e71b098d4..6ba8e071ea 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; |