From 70893c4d3a5101bb5d2c344028bf78cb34d20f9d Mon Sep 17 00:00:00 2001 From: Jean-Francois Roy Date: Fri, 14 Nov 2025 11:17:24 -0800 Subject: [PATCH 1/2] Add missing return in `getSystemSearchPaths` for debian like containers Signed-off-by: Evan Lezar (cherry picked from commit aa50114eebd5aef7ee434f254330373ad8ab0515) --- internal/ldconfig/ldconfig.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/ldconfig/ldconfig.go b/internal/ldconfig/ldconfig.go index 4c9939f1e..7356e9c3e 100644 --- a/internal/ldconfig/ldconfig.go +++ b/internal/ldconfig/ldconfig.go @@ -255,7 +255,7 @@ func (l *Ldconfig) getLdsoconfDirectories(configFilePath string) (map[string]str func (l *Ldconfig) getSystemSerachPaths() []string { if l.isDebianLikeContainer { - debianSystemSearchPaths() + return debianSystemSearchPaths() } return nonDebianSystemSearchPaths() } From e8d27182676d0eab6d42029c7a06ef65bdb72115 Mon Sep 17 00:00:00 2001 From: Jean-Francois Roy Date: Thu, 13 Nov 2025 16:56:21 -0800 Subject: [PATCH 2/2] ldconfig: Determine container "debian-ness" after root pivot Signed-off-by: Evan Lezar (cherry picked from commit d0251ab6ccc51bd54a238b25468ae72ea315fbb9) --- internal/ldconfig/ldconfig.go | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/internal/ldconfig/ldconfig.go b/internal/ldconfig/ldconfig.go index 7356e9c3e..28b634ebc 100644 --- a/internal/ldconfig/ldconfig.go +++ b/internal/ldconfig/ldconfig.go @@ -98,11 +98,10 @@ func NewFromArgs(args ...string) (*Ldconfig, error) { } l := &Ldconfig{ - ldconfigPath: *ldconfigPath, - inRoot: *containerRoot, - isDebianLikeHost: *isDebianLikeHost, - isDebianLikeContainer: isDebian(), - directories: fs.Args(), + ldconfigPath: *ldconfigPath, + inRoot: *containerRoot, + isDebianLikeHost: *isDebianLikeHost, + directories: fs.Args(), } return l, nil } @@ -113,6 +112,9 @@ func (l *Ldconfig) UpdateLDCache() error { return err } + // `prepareRoot` pivots to the container root, so can now set the container "debian-ness". + l.isDebianLikeContainer = isDebian() + // Explicitly specify using /etc/ld.so.conf since the host's ldconfig may // be configured to use a different config file by default. const topLevelLdsoconfFilePath = "/etc/ld.so.conf" @@ -224,7 +226,7 @@ func createLdsoconfdFile(pattern string, dirs ...string) error { // files that refer to the directory. func (l *Ldconfig) getLdsoconfDirectories(configFilePath string) (map[string]struct{}, error) { ldconfigDirs := make(map[string]struct{}) - for _, d := range l.getSystemSerachPaths() { + for _, d := range l.getSystemSearchPaths() { ldconfigDirs[d] = struct{}{} } @@ -253,7 +255,7 @@ func (l *Ldconfig) getLdsoconfDirectories(configFilePath string) (map[string]str return ldconfigDirs, nil } -func (l *Ldconfig) getSystemSerachPaths() []string { +func (l *Ldconfig) getSystemSearchPaths() []string { if l.isDebianLikeContainer { return debianSystemSearchPaths() }