From 94036de9561cf1801cf5694f021864637a355220 Mon Sep 17 00:00:00 2001 From: Maxim Ivanov Date: Sun, 1 Apr 2018 12:16:04 +0100 Subject: [PATCH] Fix FIFO, sockets and device files when run in user NS commit 617c352e9225 "Don't create devices if in a user namespace" introduced check, which meant to skip mknod operation when run in user namespace, but instread skipped FIFO and socket files copy. Signed-off-by: Maxim Ivanov Upstream-commit: 6f084f292932c464a30b56edb9edbe238bdcf0aa Component: engine --- components/engine/daemon/graphdriver/copy/copy.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/components/engine/daemon/graphdriver/copy/copy.go b/components/engine/daemon/graphdriver/copy/copy.go index b5de71085e..86316fdfe7 100644 --- a/components/engine/daemon/graphdriver/copy/copy.go +++ b/components/engine/daemon/graphdriver/copy/copy.go @@ -189,15 +189,15 @@ func DirCopy(srcDir, dstDir string, copyMode Mode, copyXattrs bool) error { case os.ModeNamedPipe: fallthrough case os.ModeSocket: - if rsystem.RunningInUserNS() { - // cannot create a device if running in user namespace - return nil - } if err := unix.Mkfifo(dstPath, stat.Mode); err != nil { return err } case os.ModeDevice: + if rsystem.RunningInUserNS() { + // cannot create a device if running in user namespace + return nil + } if err := unix.Mknod(dstPath, stat.Mode, int(stat.Rdev)); err != nil { return err }