From 2a45549820a4e364d000ac62362d2feafbb0b3c1 Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Wed, 27 Nov 2019 11:07:38 -0800 Subject: Allow filesystem links to contain leading/trailing whitespace To make manually editing linked protectors slightly more user-friendly, automatically strip any leading or trailing whitespace. E.g. treat "UUID=3a6d9a76-47f0-4f13-81bf-3332fbe984fb\n" the same as "UUID=3a6d9a76-47f0-4f13-81bf-3332fbe984fb". Update https://github.com/google/fscrypt/issues/115 --- filesystem/mountpoint_test.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'filesystem/mountpoint_test.go') diff --git a/filesystem/mountpoint_test.go b/filesystem/mountpoint_test.go index d21ba48..ad0dab7 100644 --- a/filesystem/mountpoint_test.go +++ b/filesystem/mountpoint_test.go @@ -255,6 +255,38 @@ func TestLoadOnlyBindMounts(t *testing.T) { } } +// Test making a filesystem link (i.e. "UUID=...") and following it, and test +// that leading and trailing whitespace in the link is ignored. +func TestGetMountFromLink(t *testing.T) { + mnt, err := getTestMount(t) + if err != nil { + t.Skip(err) + } + link, err := makeLink(mnt, uuidToken) + if err != nil { + t.Fatal(err) + } + linkedMnt, err := getMountFromLink(link) + if err != nil { + t.Fatal(err) + } + if linkedMnt != mnt { + t.Fatal("Link doesn't point to the same Mount") + } + if linkedMnt, err = getMountFromLink(link + "\n"); err != nil { + t.Fatal(err) + } + if linkedMnt != mnt { + t.Fatal("Link doesn't point to the same Mount") + } + if linkedMnt, err = getMountFromLink(" " + link + " \r\n"); err != nil { + t.Fatal(err) + } + if linkedMnt != mnt { + t.Fatal("Link doesn't point to the same Mount") + } +} + // Benchmarks how long it takes to update the mountpoint data func BenchmarkLoadFirst(b *testing.B) { for n := 0; n < b.N; n++ { -- cgit v1.2.3