aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/subsystem/lists
diff options
context:
space:
mode:
authorAleksandr Nogikh <nogikh@google.com>2023-03-28 15:03:50 +0200
committerAleksandr Nogikh <wp32pw@gmail.com>2023-03-28 18:07:01 +0200
commitfc067f05bce8156101e90f93fe87e702114b863f (patch)
treef230df37293dd7afc370eec1eba5521e60ebd1df /pkg/subsystem/lists
parent5232cf0254feea67f22bebab12e4302bb37f74f6 (diff)
pkg/subsystem: disambiguate subsystems by reproducers
There are some minor subsystems (e.g. PAGE CACHE in Linux) that are parts of several big subsystems. At the same time, a reproducer can clearly disambiguate such case. If subsystems from reproducers and subsystems from guilty files intersect, only proceed with the results of the intersection.
Diffstat (limited to 'pkg/subsystem/lists')
-rw-r--r--pkg/subsystem/lists/linux_test.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/pkg/subsystem/lists/linux_test.go b/pkg/subsystem/lists/linux_test.go
index 4f53948fd..8a3893f55 100644
--- a/pkg/subsystem/lists/linux_test.go
+++ b/pkg/subsystem/lists/linux_test.go
@@ -59,6 +59,25 @@ symlinkat(&(0x7f00000004c0)='./file0aaaaaaaaaa/file0\x00', 0xffffffffffffff9c, &
},
expect: []string{"ntfs3"},
},
+ {
+ name: `a bug with page cache in guilty path`,
+ crashes: []*subsystem.Crash{
+ {
+ GuiltyPath: `mm/filemap.c`,
+ },
+ {
+ GuiltyPath: `mm/filemap.c`,
+ SyzRepro: []byte(`# https://syzkaller.appspot.com/bug?id=cdaf5ed409125df023889aefe50b4cc4a41c0973
+# See https://goo.gl/kgGztJ for information about syzkaller reproducers.
+#{"threaded":true,"repeat":true,"procs":6,"slowdown":1,"sandbox":"","sandbox_arg":0,"close_fds":false,"ieee802154":true,"sysctl":true,"tmpdir":true,"segv":true}
+syz_mount_image$ntfs3(&(0x7f000001f740), &(0x7f000001f780)='./file0\x00', 0x0, &(0x7f0000000200)=ANY=[@ANYBLOB="64697363==")
+mkdirat(0xffffffffffffff9c, &(0x7f0000000600)='./file0aaaaaaaaaaaaaaaaa\x00', 0x0)
+symlinkat(&(0x7f00000004c0)='./file0aaaaaaaaaa/file0\x00', 0xffffffffffffff9c, &(0x7f0000000280)='./file0aaaaaa/file0\x00')
+`),
+ },
+ },
+ expect: []string{"ntfs3"},
+ },
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {