54 lines
1.5 KiB
Diff
54 lines
1.5 KiB
Diff
From 81ad7062f0299c4ebc9ac3f576a2c0c67d8b6ff8 Mon Sep 17 00:00:00 2001
|
|
From: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
|
|
Date: Thu, 14 Mar 2024 14:32:01 +0900
|
|
Subject: [PATCH 026/172] rootless: fix `open /etc/docker/plugins: permission
|
|
denied`
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Fix issue 47436
|
|
|
|
Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
|
|
(cherry picked from commit d742659877d9bf0bfe64b97e529bc28667974607)
|
|
Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
|
|
---
|
|
pkg/plugins/discovery.go | 12 ++++++++++--
|
|
1 file changed, 10 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/pkg/plugins/discovery.go b/pkg/plugins/discovery.go
|
|
index 37316ed482..503ac574a9 100644
|
|
--- a/pkg/plugins/discovery.go
|
|
+++ b/pkg/plugins/discovery.go
|
|
@@ -10,6 +10,8 @@ import (
|
|
"strings"
|
|
"sync"
|
|
|
|
+ "github.com/containerd/containerd/pkg/userns"
|
|
+ "github.com/containerd/log"
|
|
"github.com/pkg/errors"
|
|
)
|
|
|
|
@@ -56,10 +58,16 @@ func (l *LocalRegistry) Scan() ([]string, error) {
|
|
|
|
for _, p := range l.specsPaths {
|
|
dirEntries, err = os.ReadDir(p)
|
|
- if err != nil && !os.IsNotExist(err) {
|
|
+ if err != nil {
|
|
+ if os.IsNotExist(err) {
|
|
+ continue
|
|
+ }
|
|
+ if os.IsPermission(err) && userns.RunningInUserNS() {
|
|
+ log.L.Debug(err.Error())
|
|
+ continue
|
|
+ }
|
|
return nil, errors.Wrap(err, "error reading dir entries")
|
|
}
|
|
-
|
|
for _, entry := range dirEntries {
|
|
if entry.IsDir() {
|
|
infos, err := os.ReadDir(filepath.Join(p, entry.Name()))
|
|
--
|
|
2.27.0
|
|
|