github.com/ice-blockchain/go/src@v0.0.0-20240403114104-1564d284e521/runtime/security_unix.go (about) 1 // Copyright 2023 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 //go:build unix 6 7 package runtime 8 9 func secure() { 10 initSecureMode() 11 12 if !isSecureMode() { 13 return 14 } 15 16 // When secure mode is enabled, we do one thing: enforce specific 17 // environment variable values (currently we only force GOTRACEBACK=none) 18 // 19 // Other packages may also disable specific functionality when secure mode 20 // is enabled (determined by using linkname to call isSecureMode). 21 22 secureEnv() 23 } 24 25 func secureEnv() { 26 var hasTraceback bool 27 for i := 0; i < len(envs); i++ { 28 if hasPrefix(envs[i], "GOTRACEBACK=") { 29 hasTraceback = true 30 envs[i] = "GOTRACEBACK=none" 31 } 32 } 33 if !hasTraceback { 34 envs = append(envs, "GOTRACEBACK=none") 35 } 36 }