internal/fastwalk: avoid slice bounds out of range for long file names
Fixes golang/go#28715
Change-Id: Ibed78d2376f4ec010ee9e5e772069afd14fd5552
Reviewed-on: https://go-review.googlesource.com/c/148884
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/internal/fastwalk/fastwalk_test.go b/internal/fastwalk/fastwalk_test.go
index efb813c..a122ddf 100644
--- a/internal/fastwalk/fastwalk_test.go
+++ b/internal/fastwalk/fastwalk_test.go
@@ -98,6 +98,23 @@
})
}
+func TestFastWalk_LongFileName(t *testing.T) {
+ longFileName := strings.Repeat("x", 255)
+
+ testFastWalk(t, map[string]string{
+ longFileName: "one",
+ },
+ func(path string, typ os.FileMode) error {
+ return nil
+ },
+ map[string]os.FileMode{
+ "": os.ModeDir,
+ "/src": os.ModeDir,
+ "/src/" + longFileName: 0,
+ },
+ )
+}
+
func TestFastWalk_Symlink(t *testing.T) {
switch runtime.GOOS {
case "windows", "plan9":