| Date | Tue, 18 Nov 2014 18:38:14 -0500 | From | Sasha Levin <> | Subject | Re: [PATCH v6 00/11] Kernel address sanitizer - runtime memory debugger. |
| |
Hi Andrey,
After the recent exchange of mails about kasan it came to me that I haven't seen a kasan warning for a while now. To give kasan a quick test I added a rather simple error which should generate a kasan warning about accessing userspace memory (yes, I know kasan has a test module but my setup doesn't like modules):
diff --git a/net/socket.c b/net/socket.c index fe20c31..794e9f4 100644 --- a/net/socket.c +++ b/net/socket.c @@ -1902,7 +1902,7 @@ SYSCALL_DEFINE5(setsockopt, int, fd, int, level, int, optname, { int err, fput_needed; struct socket *sock; - + *((char *)10) = 5; if (optlen < 0) return -EINVAL;
A gfp was triggered, but no kasan warning was shown.
I remembered that one of the biggest changes in kasan was the introduction of inline instrumentation, so I went ahead to disable it and see if it helps. But the only result of that was having the boot process hang pretty early:
[...] [ 0.000000] IOAPIC[0]: apic_id 21, version 17, address 0xfec00000, GSI 0-23 [ 0.000000] Processors: 20 [ 0.000000] smpboot: Allowing 24 CPUs, 4 hotplug CPUs [ 0.000000] e820: [mem 0xd0000000-0xffffffff] available for PCI devices [ 0.000000] Booting paravirtualized kernel on KVM [ 0.000000] setup_percpu: NR_CPUS:8192 nr_cpumask_bits:24 nr_cpu_ids:24 nr_node_ids:1 [ 0.000000] PERCPU: Embedded 491 pages/cpu @ffff8808dce00000 s1971864 r8192 d31080 u2097152 *HANG*
I'm using the latest gcc:
$ gcc --version gcc (GCC) 5.0.0 20141117 (experimental)
I'll continue looking into it tomorrow, just hoping it rings a bell...
Thanks, Sasha
|