From db716d6653d073b0abfb51186cd4ac2d5418c9c6 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Wed, 26 Sep 2018 12:02:43 +0200 Subject: pkg/report: fix guilty file extraction Account for the case that some file names can appear _before_ crash report starts. Start extracting guilty file starting from StartPos. --- pkg/report/testdata/linux/guilty/20 | 1 + pkg/report/testdata/linux/guilty/39 | 77 +++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 pkg/report/testdata/linux/guilty/39 (limited to 'pkg/report/testdata/linux/guilty') diff --git a/pkg/report/testdata/linux/guilty/20 b/pkg/report/testdata/linux/guilty/20 index 0fc073699..b95a5b74d 100644 --- a/pkg/report/testdata/linux/guilty/20 +++ b/pkg/report/testdata/linux/guilty/20 @@ -1,3 +1,4 @@ FILE: driver/foo/lib/foo.c +WARNING: CPU: 2 PID: 24023 at kernel/locking/lockdep.c:3344 __lock_acquire+0x10e5/0x3690 kernel/locking/lockdep.c:3344 driver/foo/lib/foo.c:10 diff --git a/pkg/report/testdata/linux/guilty/39 b/pkg/report/testdata/linux/guilty/39 new file mode 100644 index 000000000..79bbf1223 --- /dev/null +++ b/pkg/report/testdata/linux/guilty/39 @@ -0,0 +1,77 @@ +FILE: security/apparmor/policy_ns.c + + sock_common_setsockopt+0x9a/0xe0 net/core/sock.c:3038 + __sys_setsockopt+0x1ba/0x3c0 net/socket.c:1902 + __do_sys_setsockopt net/socket.c:1913 [inline] + __se_sys_setsockopt net/socket.c:1910 [inline] + __x64_sys_setsockopt+0xbe/0x150 net/socket.c:1910 + do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290 +================================================================== +BUG: KASAN: global-out-of-bounds in memcmp+0xe3/0x160 lib/string.c:861 +Read of size 1 at addr ffffffff88000008 by task syz-executor0/10914 + + entry_SYSCALL_64_after_hwframe+0x49/0xbe +RIP: 0033:0x457579 +Code: 1d b4 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 eb b3 fb ff c3 66 2e 0f 1f 84 00 00 00 00 +RSP: 002b:00007f4c14533c78 EFLAGS: 00000246 ORIG_RAX: 0000000000000036 +RAX: ffffffffffffffda RBX: 00007f4c14533c90 RCX: 0000000000457579 +RDX: 0000000000000040 RSI: 0000000000000000 RDI: 0000000000000003 +RBP: 000000000072bf00 R08: 0000000000000004 R09: 0000000000000000 +R10: 0000000020000080 R11: 0000000000000246 R12: 00007f4c145346d4 +R13: 00000000004c3ed9 R14: 00000000004d6260 R15: 0000000000000004 +CPU: 0 PID: 10914 Comm: syz-executor0 Not tainted 4.19.0-rc5+ #252 +Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 +Call Trace: + __dump_stack lib/dump_stack.c:77 [inline] + dump_stack+0x1c4/0x2b4 lib/dump_stack.c:113 + print_address_description.cold.8+0x58/0x1ff mm/kasan/report.c:256 + kasan_report_error mm/kasan/report.c:354 [inline] + kasan_report.cold.9+0x242/0x309 mm/kasan/report.c:412 + __asan_report_load1_noabort+0x14/0x20 mm/kasan/report.c:430 + memcmp+0xe3/0x160 lib/string.c:861 + strnstr+0x4b/0x70 lib/string.c:934 + __aa_lookupn_ns+0xc1/0x570 security/apparmor/policy_ns.c:209 + aa_lookupn_ns+0x88/0x1e0 security/apparmor/policy_ns.c:240 + aa_fqlookupn_profile+0x1b9/0x1010 security/apparmor/policy.c:468 + fqlookupn_profile+0x80/0xc0 security/apparmor/label.c:1844 + aa_label_strn_parse+0xa3a/0x1230 security/apparmor/label.c:1908 + aa_label_parse+0x42/0x50 security/apparmor/label.c:1943 + aa_change_profile+0x513/0x3510 security/apparmor/domain.c:1362 + apparmor_setprocattr+0xa8b/0x1150 security/apparmor/lsm.c:656 + security_setprocattr+0x66/0xc0 security/security.c:1298 + proc_pid_attr_write+0x301/0x540 fs/proc/base.c:2555 + __vfs_write+0x119/0x9f0 fs/read_write.c:485 + vfs_write+0x1fc/0x560 fs/read_write.c:549 + ksys_write+0x101/0x260 fs/read_write.c:598 + __do_sys_write fs/read_write.c:610 [inline] + __se_sys_write fs/read_write.c:607 [inline] + __x64_sys_write+0x73/0xb0 fs/read_write.c:607 + do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290 + entry_SYSCALL_64_after_hwframe+0x49/0xbe +RIP: 0033:0x457579 +Code: 1d b4 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 eb b3 fb ff c3 66 2e 0f 1f 84 00 00 00 00 +RSP: 002b:00007f5a92ec2c78 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 +RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000000457579 +RDX: 000000000000002c RSI: 00000000200000c0 RDI: 0000000000000004 +RBP: 000000000072bf00 R08: 0000000000000000 R09: 0000000000000000 +R10: 0000000000000000 R11: 0000000000000246 R12: 00007f5a92ec36d4 +R13: 00000000004c5454 R14: 00000000004d8c78 R15: 00000000ffffffff + +CPU: 1 PID: 10921 Comm: syz-executor3 Not tainted 4.19.0-rc5+ #252 +Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 +The buggy address belongs to the variable: + __start_rodata+0x8/0x1000 +Call Trace: + __dump_stack lib/dump_stack.c:77 [inline] + dump_stack+0x1c4/0x2b4 lib/dump_stack.c:113 + +Memory state around the buggy address: + ffffffff87ffff00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + ffffffff87ffff80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 + fail_dump lib/fault-inject.c:51 [inline] + should_fail.cold.4+0xa/0x17 lib/fault-inject.c:149 +ffffffff88000000: 00 fa fa fa fa fa fa fa 00 01 fa fa fa fa fa fa + ^ + ffffffff88000080: 00 00 00 07 fa fa fa fa 00 04 fa fa fa fa fa fa + ffffffff88000100: 05 fa fa fa fa fa fa fa 00 00 00 00 05 fa fa fa +================================================================== -- cgit mrf-deployment