public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] ldconfig: create /var/cache/ldconfig also with -r
@ 2022-10-11 12:20 Johannes Schauer Marin Rodrigues
  2022-10-11 20:59 ` Aurelien Jarno
  0 siblings, 1 reply; 4+ messages in thread
From: Johannes Schauer Marin Rodrigues @ 2022-10-11 12:20 UTC (permalink / raw)
  To: libc-alpha; +Cc: Johannes Schauer Marin Rodrigues

Without the -r option, ldconfig creates /var/cache/ldconfig if it didn't
exist yet. With the -r option, a non-existing /var/cache/ldconfig inside
the chroot directory will *not* get created because chroot_canon() will
return NULL if the path doesn't exist. This means that aux_cache_file
will be set to NULL and save_aux_cache() doesn't get executed at the
end. So instead of using chroot_canon() to prepending the chroot path,
combine the paths manually.
---
 elf/ldconfig.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/elf/ldconfig.c b/elf/ldconfig.c
index e6c24e71a4..da76dc31b8 100644
--- a/elf/ldconfig.c
+++ b/elf/ldconfig.c
@@ -1293,9 +1293,11 @@ main (int argc, char **argv)
 	add_system_dir (LIBDIR);
     }
 
-  const char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE;
-  if (opt_chroot != NULL)
-    aux_cache_file = chroot_canon (opt_chroot, aux_cache_file);
+  char *aux_cache_file = (char *)(_PATH_LDCONFIG_AUX_CACHE);
+  if (opt_chroot != NULL) {
+    aux_cache_file = alloca (strlen (opt_chroot) + strlen (_PATH_LDCONFIG_AUX_CACHE) + 2);
+    sprintf (aux_cache_file, "%s/%s", opt_chroot, _PATH_LDCONFIG_AUX_CACHE);
+  }
 
   if (! opt_ignore_aux_cache && aux_cache_file)
     load_aux_cache (aux_cache_file);
-- 
2.37.2


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2022-10-12 17:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-11 12:20 [PATCH] ldconfig: create /var/cache/ldconfig also with -r Johannes Schauer Marin Rodrigues
2022-10-11 20:59 ` Aurelien Jarno
2022-10-12  3:50   ` Johannes Schauer Marin Rodrigues
2022-10-12 17:52     ` Aurelien Jarno

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).