From a534f625d40042d3269b5c428a6bead8c503a40d Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Wed, 3 Aug 2022 17:30:34 +0300 Subject: [PATCH] More reliable and clear random prefix --- run.go | 8 +++++++- tmp.go | 6 ------ usage.go | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/run.go b/run.go index 44d25d5..8cb6017 100644 --- a/run.go +++ b/run.go @@ -21,6 +21,8 @@ package main import ( "bufio" + "crypto/rand" + "encoding/hex" "errors" "flag" "fmt" @@ -402,7 +404,11 @@ func runScript(tgtOrig string, errs chan error, traced bool) error { cmd.Env = append(cmd.Env, fmt.Sprintf("%s=%s", EnvDirPrefix, dirPrefix)) cmd.Env = append(cmd.Env, fmt.Sprintf("%s=%s", EnvBuildUUID, BuildUUID)) - childStderrPrefix := tempsuffix() + childStderrPrefixRaw := make([]byte, 8) + if _, err = io.ReadFull(rand.Reader, childStderrPrefixRaw); err != nil { + panic(err) + } + childStderrPrefix := hex.EncodeToString(childStderrPrefixRaw) cmd.Env = append(cmd.Env, fmt.Sprintf( "%s=%s", EnvStderrPrefix, childStderrPrefix, )) diff --git a/tmp.go b/tmp.go index 45bf32d..dbeed50 100644 --- a/tmp.go +++ b/tmp.go @@ -21,14 +21,8 @@ package main import ( "os" - "strconv" - "time" ) -func tempsuffix() string { - return strconv.FormatInt((time.Now().UnixNano()+int64(os.Getpid()))&0xFFFFFFFF, 16) -} - func tempfile(dir, prefix string) (*os.File, error) { tmp, err := os.CreateTemp(dir, prefix) if err != nil { diff --git a/usage.go b/usage.go index f534064..4dd8861 100644 --- a/usage.go +++ b/usage.go @@ -24,7 +24,7 @@ import ( ) const ( - Version = "1.25.0" + Version = "1.26.0" Warranty = `Copyright (C) 2020-2022 Sergey Matveev This program is free software: you can redistribute it and/or modify -- 2.44.0