import (
"bufio"
+ "crypto/rand"
+ "encoding/hex"
"errors"
"flag"
"fmt"
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,
))
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 {