Messages in this thread | | | Subject | Re: [RFC PATCH] UML: add support for KASAN under x86_64 | From | Johannes Berg <> | Date | Thu, 16 Jan 2020 10:20:26 +0100 |
| |
On Thu, 2020-01-16 at 10:18 +0100, Dmitry Vyukov wrote: > > Looking at this problem and at the number of KASAN_SANITIZE := n in > Makefiles (some of which are pretty sad, e.g. ignoring string.c, > kstrtox.c, vsprintf.c -- that's where the bugs are!), I think we > initialize KASAN too late. I think we need to do roughly what we do in > user-space asan (because it is user-space asan!). Constructors run > before main and it's really good, we need to initialize KASAN from > these constructors. Or if that's not enough in all cases, also add own > constructor/.preinit array entry to initialize as early as possible.
We even control the linker in this case, so we can put something into the .preinit array *first*.
> All we need to do is to call mmap syscall, there is really no > dependencies on anything kernel-related.
OK. I wasn't really familiar with those details.
> This should resolve the problem with constructors (after they > initialize KASAN, they can proceed to do anything they need) and it > should get rid of most KASAN_SANITIZE (in particular, all of > lib/Makefile and kernel/Makefile) and should fix stack instrumentation > (in case it does not work now). The only tiny bit we should not > instrument is the path from constructor up to mmap call.
That'd be great :)
johannes
| |