INNER CODE UNIT · Go

cmd

moul/sshportal · testserver.go:36

		cmd := exec.Command(s.Command()[0], s.Command()[1:]...) // #nosec
		if s.Command() == nil {
			cmd = exec.Command("/bin/sh") // #nosec
		}
		ptyReq, winCh, isPty := s.Pty()
		var cmdErr error
		if isPty {
			cmd.Env = append(cmd.Env, fmt.Sprintf("TERM=%s", ptyReq.Term))
			f, err := pty.Start(cmd)
			if err != nil {
				fmt.Fprintf(s, "failed to run command: %v\n", err) // #nosec
				_ = s.Exit(1)                                      // #nosec
				return
			}
			go func() {
				for win := range winCh {
					_, _, _ = syscall.Syscall(syscall.SYS_IOCTL, f.Fd(), uintptr(syscall.TIOCSWINSZ),
						uintptr(unsafe.Pointer(&struct{ h, w, x, y uint16 }{uint16(win.Height), uint16(win.Width), 0, 0}))) // #nosec

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…