diff options
| author | Sean Liao <sean@liao.dev> | 2025-05-11 22:36:58 +0100 |
|---|---|---|
| committer | Sean Liao <sean@liao.dev> | 2025-05-12 12:34:50 -0700 |
| commit | ac992f2614ee3abef8eb01ed8b7d5b4024cda48f (patch) | |
| tree | ae92a29748232b3d1d63c0f85c11bc681c7db4be /src/testing | |
| parent | 8cfcad8da82a01296cfcdb8c6ab7b0b726534e21 (diff) | |
| download | go-ac992f2614ee3abef8eb01ed8b7d5b4024cda48f.tar.xz | |
testing: limit TempDir name length
Fixes #71742
Change-Id: Ibef8f7f0a36b25f181062c4d2f84279a97e467a4
Reviewed-on: https://go-review.googlesource.com/c/go/+/671577
Reviewed-by: Damien Neil <dneil@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Michael Knyszek <mknyszek@google.com>
Diffstat (limited to 'src/testing')
| -rw-r--r-- | src/testing/testing.go | 7 | ||||
| -rw-r--r-- | src/testing/testing_test.go | 1 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/testing/testing.go b/src/testing/testing.go index 78681b605b..d50abea32f 100644 --- a/src/testing/testing.go +++ b/src/testing/testing.go @@ -1244,6 +1244,11 @@ func (c *common) TempDir() string { if nonExistent { c.Helper() + pattern := c.Name() + // Limit length of file names on disk. + // Invalid runes from slicing are dropped by strings.Map below. + pattern = pattern[:min(len(pattern), 64)] + // Drop unusual characters (such as path separators or // characters interacting with globs) from the directory name to // avoid surprising os.MkdirTemp behavior. @@ -1263,7 +1268,7 @@ func (c *common) TempDir() string { } return -1 } - pattern := strings.Map(mapper, c.Name()) + pattern = strings.Map(mapper, pattern) c.tempDir, c.tempDirErr = os.MkdirTemp("", pattern) if c.tempDirErr == nil { c.Cleanup(func() { diff --git a/src/testing/testing_test.go b/src/testing/testing_test.go index 907d0701f0..209291d322 100644 --- a/src/testing/testing_test.go +++ b/src/testing/testing_test.go @@ -89,6 +89,7 @@ func TestTempDir(t *testing.T) { t.Run("test[]", testTempDir) t.Run("test*", testTempDir) t.Run("äöüéè", testTempDir) + t.Run(strings.Repeat("a", 300), testTempDir) } func testTempDir(t *testing.T) { |
