Skip to content

Commit

Permalink
Fixing couple noted file handle leaks. (#921)
Browse files Browse the repository at this point in the history
* Fixing couple noted file handle leaks.

* Some code cleanup.
  • Loading branch information
joel-rieke authored Jan 30, 2024
1 parent e4dfa94 commit 61852dc
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 16 deletions.
1 change: 1 addition & 0 deletions atrium/vestibulum/trcflow/deploy/process.go
Original file line number Diff line number Diff line change
Expand Up @@ -289,6 +289,7 @@ func PluginDeployFlow(pluginConfig map[string]interface{}, logger *log.Logger) e
}

if imageFile, err := os.Open(agentPath); err == nil {
defer imageFile.Close()
chdModErr := imageFile.Chmod(0750)
if chdModErr != nil {
eUtils.LogErrorMessage(cConfig, fmt.Sprintf("PluginDeployFlow failure: Could not give permission to image in file system. Bailing.. for env: %s and plugin %s\n", cConfig.Env, pluginName), false)
Expand Down
4 changes: 1 addition & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -34,13 +34,12 @@ require (
github.com/Azure/azure-sdk-for-go/sdk/containers/azcontainerregistry v0.2.0
github.com/go-git/go-billy/v5 v5.4.1
github.com/graphql-go/graphql v0.8.1-0.20220614210743-09272f350067
github.com/trimble-oss/tierceron-hat v1.0.0
github.com/trimble-oss/tierceron-hat v1.0.1
)

require (
github.com/Azure/azure-sdk-for-go/sdk/internal v1.5.0 // indirect
github.com/AzureAD/microsoft-authentication-library-for-go v1.1.1 // indirect
github.com/golang-jwt/jwt/v4 v4.5.0 // indirect
github.com/klauspost/cpuid/v2 v2.2.6 // indirect
github.com/klauspost/reedsolomon v1.11.8 // indirect
github.com/kylelemons/godebug v1.1.0 // indirect
Expand All @@ -56,7 +55,6 @@ require (

require (
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/stretchr/testify v1.8.4 // indirect
)

require (
Expand Down
2 changes: 2 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -233,6 +233,8 @@ github.com/trimble-oss/tierceron-hat v0.0.0-20240105173112-8eae141c3201 h1:xLt/E
github.com/trimble-oss/tierceron-hat v0.0.0-20240105173112-8eae141c3201/go.mod h1:tGBWlLEwe9A9JvWYqMkC9cHeWWqF0RWJ7wVtijuK8hE=
github.com/trimble-oss/tierceron-hat v1.0.0 h1:JaZ7jWcLh/m4+bfuYYQ6g/rp2nmo6Hy3XWHKEzMnesE=
github.com/trimble-oss/tierceron-hat v1.0.0/go.mod h1:tGBWlLEwe9A9JvWYqMkC9cHeWWqF0RWJ7wVtijuK8hE=
github.com/trimble-oss/tierceron-hat v1.0.1 h1:WC5JDDeWpiI6zsy/tT0jXb2we4jLuquigctJ4C7pujM=
github.com/trimble-oss/tierceron-hat v1.0.1/go.mod h1:tGBWlLEwe9A9JvWYqMkC9cHeWWqF0RWJ7wVtijuK8hE=
github.com/trimble-oss/tierceron/atrium v0.0.0-20240126223816-e0ce721b2e97 h1:R3aUZ76Kj69adXoniq5WflzNYtrra7jquPl/Ku3x0N8=
github.com/trimble-oss/tierceron/atrium v0.0.0-20240126223816-e0ce721b2e97/go.mod h1:YyFJRydD6ZKU3guNgqy4vmEkTWy66C7vMymHCPgtxi8=
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
Expand Down
30 changes: 17 additions & 13 deletions pkg/cli/trcxbase/trcxbase.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,20 @@ import (
"github.com/trimble-oss/tierceron/buildopts/coreopts"
"github.com/trimble-oss/tierceron/buildopts/memonly"
"github.com/trimble-oss/tierceron/buildopts/memprotectopts"
"github.com/trimble-oss/tierceron/pkg/utils"
eUtils "github.com/trimble-oss/tierceron/pkg/utils"
"github.com/trimble-oss/tierceron/pkg/vaulthelper/kv"
helperkv "github.com/trimble-oss/tierceron/pkg/vaulthelper/kv"

"github.com/hashicorp/vault/api"
)

func messenger(configCtx *utils.ConfigContext, inData *string, inPath string) {
var data utils.ResultData
func messenger(configCtx *eUtils.ConfigContext, inData *string, inPath string) {
var data eUtils.ResultData
data.InData = inData
data.InPath = inPath
configCtx.ResultChannel <- &data
}

func receiver(configCtx *utils.ConfigContext) {
func receiver(configCtx *eUtils.ConfigContext) {
for {
select {
case data := <-configCtx.ResultChannel:
Expand Down Expand Up @@ -110,11 +108,11 @@ func CommonMain(ctx eUtils.ProcessContext,
}

flagset.Parse(argLines[1:])
configCtx := &utils.ConfigContext{
configCtx := &eUtils.ConfigContext{
ResultMap: make(map[string]*string),
EnvSlice: make([]string, 0),
ProjectSectionsSlice: make([]string, 0),
ResultChannel: make(chan *utils.ResultData, 5),
ResultChannel: make(chan *eUtils.ResultData, 5),
FileSysIndex: -1,
ConfigWg: sync.WaitGroup{},
Mutex: &sync.Mutex{},
Expand All @@ -136,7 +134,7 @@ func CommonMain(ctx eUtils.ProcessContext,

Yellow := "\033[33m"
Reset := "\033[0m"
if utils.IsWindows() {
if eUtils.IsWindows() {
Reset = ""
Yellow = ""
}
Expand Down Expand Up @@ -202,9 +200,15 @@ func CommonMain(ctx eUtils.ProcessContext,
indexed := false
if !*noVaultPtr {
pwd, _ := os.Getwd()
_, fileErr := os.Open(pwd + "/" + coreopts.BuildOptions.GetFolderPrefix(nil) + "_seeds/" + *envPtr + "/Index/" + *fileAddrPtr + "_seed.yml")
fileIndex, fileErr := os.Open(pwd + "/" + coreopts.BuildOptions.GetFolderPrefix(nil) + "_seeds/" + *envPtr + "/Index/" + *fileAddrPtr + "_seed.yml")
if fileIndex != nil {
defer fileIndex.Close()
}
if errors.Is(fileErr, os.ErrNotExist) {
_, fileRErr := os.Open(pwd + "/" + coreopts.BuildOptions.GetFolderPrefix(nil) + "_seeds/" + *envPtr + "/Restricted/" + *fileAddrPtr + "_seed.yml")
fileRestricted, fileRErr := os.Open(pwd + "/" + coreopts.BuildOptions.GetFolderPrefix(nil) + "_seeds/" + *envPtr + "/Restricted/" + *fileAddrPtr + "_seed.yml")
if fileRestricted != nil {
defer fileRestricted.Close()
}
if errors.Is(fileRErr, os.ErrNotExist) {
fmt.Println("Specified seed file could not be found.")
os.Exit(1)
Expand Down Expand Up @@ -475,7 +479,7 @@ skipDiff:
for i, dynamicPart := range dynamicPathParts {
if dynamicPart == "%s" {
if testMod == nil {
testMod, err = helperkv.NewModifier(*insecurePtr, *tokenPtr, *addrPtr, baseEnv, regions, true, logger)
testMod, err = kv.NewModifier(*insecurePtr, *tokenPtr, *addrPtr, baseEnv, regions, true, logger)
testMod.Env = baseEnv
if err != nil {
eUtils.LogErrorMessage(config, "Access to vault failure.", true)
Expand All @@ -501,7 +505,7 @@ skipDiff:
}

if len(dynamicPathParts) > i {
for level, _ := range levelPart {
for level := range levelPart {
recursivePathBuilder(testMod, pGen+"/"+level, dynamicPathParts[i+1:])
}
return
Expand Down Expand Up @@ -552,7 +556,7 @@ skipDiff:
if authErr != nil {
eUtils.LogErrorMessage(config, "Auth failure: "+authErr.Error(), true)
}
testMod, err := helperkv.NewModifier(*insecurePtr, *tokenPtr, *addrPtr, baseEnv, regions, true, logger)
testMod, err := kv.NewModifier(*insecurePtr, *tokenPtr, *addrPtr, baseEnv, regions, true, logger)
testMod.Env = baseEnv
if err != nil {
logger.Printf(err.Error())
Expand Down
1 change: 1 addition & 0 deletions pkg/trcinit/initlib/vpub.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ func UploadTemplates(c *eUtils.DriverConfig, mod *helperkv.Modifier, dirName str
if err != nil {
return nil, err
}
defer f.Close()

// Read the file
fileInfo, err := file.Info()
Expand Down
4 changes: 4 additions & 0 deletions pkg/trcinit/initlib/vsub.go
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,10 @@ func DownloadTemplateDirectory(config *eUtils.DriverConfig, mod *helperkv.Modifi
continue
}
err = os.MkdirAll(dirPath, os.ModePerm)
if err != nil {
eUtils.LogErrorMessage(config, "Couldn't make directory components: "+dirPath, false)
continue
}
templateFile := fmt.Sprintf("%s%s%s.tmpl", dirPath, file, ext)
//create new file
newFile, err := os.Create(templateFile)
Expand Down

0 comments on commit 61852dc

Please sign in to comment.