Skip to content

Commit c805582

Browse files
committed
tests: fsck: generate evil files with "\r" and "\n" on the fly
Because if we have them in git, we get this: $ go install github.com/rfjakob/gocryptfs/v2@latest go: downloading github.com/rfjakob/gocryptfs/v2 v2.5.2 go: github.com/rfjakob/gocryptfs/v2@latest: create zip: tests/fsck/malleable_base64/27AG8t-XZH7G9ou2OSD_z g: malformed file path "tests/fsck/malleable_base64/27AG8t-XZH7G9ou2OSD_z\ng": invalid char '\n' g: malformed file path "tests/fsck/malleable_base64/27AG8t-XZH7G9ou2OSD_z\rg": invalid char '\r' Fixes: #904 Relates-to: golang/go#28001
1 parent 810f074 commit c805582

File tree

4 files changed

+18
-0
lines changed

4 files changed

+18
-0
lines changed

tests/fsck/.gitignore

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Cannot have these "evil" files in git because they break "go install"
2+
# https://github.com/golang/go/issues/28001
3+
#
4+
# "malleable_base64/27AG8t-XZH7G9ou2OSD_z\ng"
5+
# "malleable_base64/27AG8t-XZH7G9ou2OSD_z\rg"
6+
#
7+
malleable_base64/27AG8t-XZH7G9ou2OSD_z?g

tests/fsck/fsck_test.go

+11
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,17 @@ func TestBrokenFsV14(t *testing.T) {
5050
}
5151

5252
func TestMalleableBase64(t *testing.T) {
53+
// Evil filenames. Cannot have them in git, because if we do,
54+
// go install github.com/rfjakob/gocryptfs/v2@latest
55+
// fails with
56+
// g: malformed file path "tests/fsck/malleable_base64/27AG8t-XZH7G9ou2OSD_z\rg": invalid char '\r'
57+
// g: malformed file path "tests/fsck/malleable_base64/27AG8t-XZH7G9ou2OSD_z\rg": invalid char '\r'
58+
if err := os.WriteFile("malleable_base64/27AG8t-XZH7G9ou2OSD_z\ng", nil, 0644); err != nil {
59+
t.Fatal(err)
60+
}
61+
if err := os.WriteFile("malleable_base64/27AG8t-XZH7G9ou2OSD_z\rg", nil, 0644); err != nil {
62+
t.Fatal(err)
63+
}
5364
cmd := exec.Command(test_helpers.GocryptfsBinary, "-fsck", "-extpass", "echo test", "malleable_base64")
5465
outBin, err := cmd.CombinedOutput()
5566
out := string(outBin)

tests/fsck/malleable_base64/27AG8t-XZH7G9ou2OSD_z g

Whitespace-only changes.

tests/fsck/malleable_base64/27AG8t-XZH7G9ou2OSD_z g

Whitespace-only changes.

0 commit comments

Comments
 (0)