// Copyright 2023 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. //go:build unix package runtime import ( "internal/stringslite" ) func secure() { initSecureMode() if !isSecureMode() { return } // When secure mode is enabled, we do one thing: enforce specific // environment variable values (currently we only force GOTRACEBACK=none) // // Other packages may also disable specific functionality when secure mode // is enabled (determined by using linkname to call isSecureMode). secureEnv() } func secureEnv() { var hasTraceback bool for i := 0; i < len(envs); i++ { if stringslite.HasPrefix(envs[i], "GOTRACEBACK=") { hasTraceback = true envs[i] = "GOTRACEBACK=none" } } if !hasTraceback { envs = append(envs, "GOTRACEBACK=none") } }