diff --git a/libnetwork/endpoint.go b/libnetwork/endpoint.go index 3ddec80ec9..f6f18a9360 100644 --- a/libnetwork/endpoint.go +++ b/libnetwork/endpoint.go @@ -548,6 +548,11 @@ func (ep *endpoint) updateDNS(resolvConf []byte) error { return err } + // Change the perms to 0644 since ioutil.TempFile creates it by default as 0600 + if err := os.Chmod(tmpResolvFile.Name(), 0644); err != nil { + return err + } + // write the updates to the temp files if err = ioutil.WriteFile(tmpHashFile.Name(), []byte(newHash), 0644); err != nil { return err diff --git a/libnetwork/libnetwork_test.go b/libnetwork/libnetwork_test.go index b628190657..879c0f146e 100644 --- a/libnetwork/libnetwork_test.go +++ b/libnetwork/libnetwork_test.go @@ -1137,6 +1137,16 @@ func TestResolvConf(t *testing.T) { } }() + finfo, err := os.Stat(resolvConfPath) + if err != nil { + t.Fatal(err) + } + + fmode := (os.FileMode)(0644) + if finfo.Mode() != fmode { + t.Fatalf("Expected file mode %s, got %s", fmode.String(), finfo.Mode().String()) + } + content, err := ioutil.ReadFile(resolvConfPath) if err != nil { t.Fatal(err)