summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiuseppe Scrivano <gscrivan@redhat.com>2020-06-10 14:52:08 +0200
committerGiuseppe Scrivano <gscrivan@redhat.com>2020-06-10 14:52:10 +0200
commit6c27e27b8c263696c78d540a87918c6482507310 (patch)
tree4c66476843bd08d9cfdc40da65156b4bbd99aec6
parenta389eab8d116f406aba6a4fd1dd5a545e536e88b (diff)
downloadpodman-6c27e27b8c263696c78d540a87918c6482507310.tar.gz
podman-6c27e27b8c263696c78d540a87918c6482507310.tar.bz2
podman-6c27e27b8c263696c78d540a87918c6482507310.zip
container: do not set hostname when joining uts
do not set the hostname when joining an UTS namespace, as it could be owned by a different userns. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
-rw-r--r--libpod/container_internal_linux.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/libpod/container_internal_linux.go b/libpod/container_internal_linux.go
index e0cd39ee5..e3ca3f6b2 100644
--- a/libpod/container_internal_linux.go
+++ b/libpod/container_internal_linux.go
@@ -392,7 +392,7 @@ func (c *Container) generateSpec(ctx context.Context) (*spec.Spec, error) {
}
for _, i := range c.config.Spec.Linux.Namespaces {
- if i.Type == spec.UTSNamespace {
+ if i.Type == spec.UTSNamespace && i.Path == "" {
hostname := c.Hostname()
g.SetHostname(hostname)
g.AddProcessEnv("HOSTNAME", hostname)
@@ -591,7 +591,8 @@ func (c *Container) addNamespaceContainer(g *generate.Generator, ns LinuxNS, ctr
if specNS == spec.UTSNamespace {
hostname := nsCtr.Hostname()
- g.SetHostname(hostname)
+ // Joining an existing namespace, cannot set the hostname
+ g.SetHostname("")
g.AddProcessEnv("HOSTNAME", hostname)
}