ROOTPLOIT
Server: LiteSpeed
System: Linux in-mum-web1878.main-hosting.eu 5.14.0-570.21.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 11 07:22:35 EDT 2025 x86_64
User: u435929562 (435929562)
PHP: 7.4.33
Disabled: system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
Upload Files
File: //opt/golang/1.22.0/src/cmd/go/testdata/script/gotoolchain_path.txt
# This test only checks that basic PATH lookups work.
# The full test of toolchain version selection is in gotoolchain.txt.

[short] skip

env TESTGO_VERSION=go1.21pre3

# Compile a fake toolchain to put in the path under various names.
env GOTOOLCHAIN=
mkdir $WORK/bin
go build -o $WORK/bin/ ./fakego.go  # adds .exe extension implicitly on Windows
cp $WORK/bin/fakego$GOEXE $WORK/bin/go1.50.0$GOEXE

[!GOOS:plan9] env PATH=$WORK/bin
[GOOS:plan9] env path=$WORK/bin

go version
stdout go1.21pre3

# GOTOOLCHAIN=go1.50.0
env GOTOOLCHAIN=go1.50.0
! go version
stderr 'running go1.50.0 from PATH'

# GOTOOLCHAIN=path with toolchain line
env GOTOOLCHAIN=local
go mod init m
go mod edit -toolchain=go1.50.0
grep go1.50.0 go.mod
env GOTOOLCHAIN=path
! go version
stderr 'running go1.50.0 from PATH'

# GOTOOLCHAIN=path with go line
env GOTOOLCHAIN=local
go mod edit -toolchain=none -go=1.50.0
grep 'go 1.50.0' go.mod
! grep toolchain go.mod
env GOTOOLCHAIN=path
! go version
stderr 'running go1.50.0 from PATH'

# GOTOOLCHAIN=auto with toolchain line
env GOTOOLCHAIN=local
go mod edit -toolchain=go1.50.0 -go=1.21
grep 'go 1.21$' go.mod
grep 'toolchain go1.50.0' go.mod
env GOTOOLCHAIN=auto
! go version
stderr 'running go1.50.0 from PATH'

# GOTOOLCHAIN=auto with go line
env GOTOOLCHAIN=local
go mod edit -toolchain=none -go=1.50.0
grep 'go 1.50.0$' go.mod
! grep toolchain go.mod
env GOTOOLCHAIN=auto
! go version
stderr 'running go1.50.0 from PATH'

# NewerToolchain should find Go 1.50.0.
env GOTOOLCHAIN=local
go mod edit -toolchain=none -go=1.22
grep 'go 1.22$' go.mod
! grep toolchain go.mod
env GOTOOLCHAIN=path
! go run rsc.io/[email protected]
stderr 'running go1.50.0 from PATH'

-- fakego.go --
package main

import (
	"fmt"
	"os"
	"path/filepath"
	"strings"
)

func main() {
	exe, _ := os.Executable()
	name := filepath.Base(exe)
	name = strings.TrimSuffix(name, ".exe")
	fmt.Fprintf(os.Stderr, "running %s from PATH\n", name)
	os.Exit(1) // fail in case we are running this accidentally (like in "go mod edit")
}