Merge 67e2f227 (automated)

This commit is contained in:
gVisor bot 2019-06-26 18:35:53 +00:00
commit 84ea7eac5b
7 changed files with 14 additions and 75 deletions

View File

@ -1,12 +1,11 @@
package kernel
import (
"fmt"
"gvisor.dev/gvisor/third_party/gvsync"
"reflect"
"strings"
"unsafe"
"fmt"
"gvisor.dev/gvisor/third_party/gvsync"
)
// SeqAtomicLoad returns a copy of *ptr, ensuring that the read does not race

View File

@ -1,10 +1,10 @@
package ring0
import (
"gvisor.dev/gvisor/pkg/cpuid"
"syscall"
"fmt"
"gvisor.dev/gvisor/pkg/cpuid"
"gvisor.dev/gvisor/pkg/sentry/platform/ring0/pagetables"
"gvisor.dev/gvisor/pkg/sentry/usermem"
"io"

View File

@ -1,12 +1,11 @@
package time
import (
"fmt"
"gvisor.dev/gvisor/third_party/gvsync"
"reflect"
"strings"
"unsafe"
"fmt"
"gvisor.dev/gvisor/third_party/gvsync"
)
// SeqAtomicLoad returns a copy of *ptr, ensuring that the read does not race

View File

@ -235,18 +235,12 @@ func (ex *Exec) execChildAndWait(waitStatus *syscall.WaitStatus) subcommands.Exi
cmd.SysProcAttr = &syscall.SysProcAttr{
Setsid: true,
Setctty: true,
Ctty: int(tty.Fd()),
// The Ctty FD must be the FD in the child process's FD
// table. Since we set cmd.Stdin/Stdout/Stderr to the
// tty FD, we can use any of 0, 1, or 2 here.
// See https://github.com/golang/go/issues/29458.
Ctty: 0,
}
// TODO(b/133868570): Delete this check once Go 1.12 is no
// longer supported.
if console.CttyFdIsPostShuffle {
// In go1.12 and before, the Ctty FD must be the FD in
// the child process's FD table. Since we set
// cmd.Stdin/Stdout/Stderr to the tty FD, we can use
// any of 0, 1, or 2 here.
cmd.SysProcAttr.Ctty = 0
}
}
if err := cmd.Start(); err != nil {

View File

@ -1,24 +0,0 @@
// Copyright 2019 The gVisor Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// +build go1.12
// +build !go1.13
// TODO(b/133868570): Delete once Go 1.12 is no longer supported.
package console
// CttyFdIsPostShuffle indicates that in go1.12 and earlier, the
// SysProcAttr.Ctty FD is determined "pre-shuffle" (not "post-shuffle").
var CttyFdIsPostShuffle = false

View File

@ -1,24 +0,0 @@
// Copyright 2019 The gVisor Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// +build go1.13
// +build !go1.14
// TODO(b/133868570): Delete once Go 1.12 is no longer supported.
package console
// CttyFdIsPostShuffle indicates that in go1.13 and later, the SysProcAttr.Ctty
// FD is determined "post-shuffle".
var CttyFdIsPostShuffle = true

View File

@ -438,15 +438,10 @@ func (s *Sandbox) createSandboxProcess(conf *boot.Config, args *Args, startSyncF
// Set the TTY as a controlling TTY on the sandbox process.
cmd.SysProcAttr.Setctty = true
cmd.SysProcAttr.Ctty = int(tty.Fd())
// TODO(b/133868570): Delete this check once Go 1.12 is no
// longer supported.
if console.CttyFdIsPostShuffle {
// In go1.12 and before, the Ctty FD must be the FD in
// the child process's FD table, which will be "nextFD"
// in this case.
cmd.SysProcAttr.Ctty = nextFD
}
// The Ctty FD must be the FD in the child process's FD table,
// which will be nextFD in this case.
// See https://github.com/golang/go/issues/29458.
cmd.SysProcAttr.Ctty = nextFD
// Pass the tty as all stdio fds to sandbox.
for i := 0; i < 3; i++ {