From b986d195b8a71d1f3cf3c13e47367fb369d0bfc3 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Thu, 19 Jan 2023 17:38:43 +0100 Subject: pkg/report: detect custom VFS errors Fixes #3621 --- pkg/report/linux.go | 24 ++++++++++++++++++++++++ pkg/report/testdata/linux/report/683 | 3 +++ pkg/report/testdata/linux/report/684 | 4 ++++ pkg/report/testdata/linux/report/685 | 2 ++ 4 files changed, 33 insertions(+) create mode 100644 pkg/report/testdata/linux/report/683 create mode 100644 pkg/report/testdata/linux/report/684 create mode 100644 pkg/report/testdata/linux/report/685 diff --git a/pkg/report/linux.go b/pkg/report/linux.go index 0cca28424..c3345edde 100644 --- a/pkg/report/linux.go +++ b/pkg/report/linux.go @@ -2242,6 +2242,30 @@ var linuxOopses = append([]*oops{ }, []*regexp.Regexp{}, }, + { + // Custom vfs error printed by older versions of the kernel, see #3621. + []byte("VFS: Close: file count is 0"), + []oopsFormat{ + { + title: compile("VFS: Close: file count is 0"), + fmt: "VFS: Close: file count is zero (use-after-free)", + noStackTrace: true, + }, + }, + []*regexp.Regexp{}, + }, + { + // Custom vfs error printed by older versions of the kernel, see #3621. + []byte("VFS: Busy inodes after unmount"), + []oopsFormat{ + { + title: compile("VFS: Busy inodes after unmount"), + fmt: "VFS: Busy inodes after unmount (use-after-free)", + noStackTrace: true, + }, + }, + []*regexp.Regexp{}, + }, { []byte("Internal error:"), []oopsFormat{ diff --git a/pkg/report/testdata/linux/report/683 b/pkg/report/testdata/linux/report/683 new file mode 100644 index 000000000..37dcf10dc --- /dev/null +++ b/pkg/report/testdata/linux/report/683 @@ -0,0 +1,3 @@ +TITLE: VFS: Close: file count is zero (use-after-free) + +VFS: Close: file count is 0 diff --git a/pkg/report/testdata/linux/report/684 b/pkg/report/testdata/linux/report/684 new file mode 100644 index 000000000..7177578f1 --- /dev/null +++ b/pkg/report/testdata/linux/report/684 @@ -0,0 +1,4 @@ +TITLE: VFS: Busy inodes after unmount (use-after-free) + + +VFS: Busy inodes after unmount of %s. Self-destruct in 5 seconds. Have a nice day... diff --git a/pkg/report/testdata/linux/report/685 b/pkg/report/testdata/linux/report/685 new file mode 100644 index 000000000..9081f4f28 --- /dev/null +++ b/pkg/report/testdata/linux/report/685 @@ -0,0 +1,2 @@ + +VFS: some message that is not an error -- cgit mrf-deployment